[PHP Learning] Analysis of the sequential storage structure principle of linear tables and code examples

little bottle
Release: 2023-04-06 11:16:01
forward
1761 people have browsed it

This article mainly talks about the principle analysis and code examples of the sequential storage structure of linear tables. It has certain reference value and interested friends can learn about it.

1. Arrays in PHP are actually ordered mappings, which can be used as arrays, lists, hash tables, dictionaries, sets, stacks, queues, and are not fixed lengths
2. Multiple array definitions If the units all use the same key name, only the last one is used, and the previous ones are overwritten
3. If you want a parameter of the function to always be passed by reference, you can add it in front of the parameter in the function definition The reference of symbol &
4.PHP is an alias, that is, two different variable names point to the same content; "By default, objects are passed by reference." But in fact, this is not completely correct. When an object is passed as a parameter, returned as a result, or assigned to another variable, the other variable has no reference relationship with the original one, but they both store copies of the same identifier

<?php
class Sqlist{
        public $data=array();
        public $length=0;
}
//插入元素
function listInsert(&$sqlist,$i,$e){
        //位置是否超出范围
        if($i<1 && $i>$sqlist->length+1){
                return false;
        }   
        //从插入位置开始,后面的所有元素都退一位
        if($i<=$sqlist->length){//要插入的位置不是在尾部
                for($k=$sqlist->length-1;$k>=$i-1;$k--){
                        $sqlist->data[$k+1]=$sqlist->data[$k];
                }   
        }   
        //新元素插入
        $sqlist->data[$i-1]=$e;
        //长度加1
        $sqlist->length++;
        return true;
}
//获取元素
function getElement($sqlist,$i,&$e){
        if($sqlist->length==0 || $i<1 || $i>$sqlist->length){
                return false;
        }   
        $e=$sqlist->data[$i-1];
        return true;
}
//删除元素
function listDelete($sqlist,$i,&$e){
        if($sqlist->length==0 || $i<1 || $i>$sqlist->length){
                return false;
        }   
        $e=$sqlist->data[$i-1];
        //如果是最后一个元素
        if($i!=$sqlist->length){
                //在删除位置之后的元素,往前移动一位
                for($k=$i-1;$k<=$sqlist->length-1;$k++){
                        $sqlist->data[$k]=$sqlist->data[$k+1];
                }   
        }   
        $sqlist->length--;
}
//插入线性表
$sqlist=new Sqlist();
listInsert($sqlist,1,"Tau");
listInsert($sqlist,1,"Shihan");
//获取元素
$e="";
getElement($sqlist,2,$e);
echo $e."\n";//输出Tau
//删除元素
listDelete($sqlist,1,$e);
var_dump($sqlist);
Copy after login

Related tutorials:PHP video tutorial

The above is the detailed content of [PHP Learning] Analysis of the sequential storage structure principle of linear tables and code examples. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
php
source:cnblogs.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!