PHP线性表顺序存储结构原理

线性表是最基本、最简单、也是最常用的一种数据结构。线性表(linearlist)是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列。线性表:即零个或多个数据元素的有限序列。

线性表的数据结构:即数据元素依此存储在一段地址连续的存储单元内。在高级语言中就表现为数组。

1.PHP中的数组实际上是有序映射,可以当成数组,列表,散列表,字典,集合,栈,队列,不是固定的长度

2.数组定义中多个单元都使用了同一个键名,则只使用了最后一个,之前的都被覆盖了

3.想要函数的一个参数总是通过引用传递,可以在函数定义中该参数的前面加上符号&

4.PHP的引用是别名,就是两个不同的变量名字指向相同的内容;“默认情况下对象是通过引用传递的”。但其实这不是完全正确的,当对象作为参数传递,作为结果返回,或者赋值给另外一个变量,另外一个变量跟原来的不是引用的关系,只是他们都保存着同一个标识符的拷贝

参数解析

DestroyList:销毁顺序线性表
ClearList:将线性表重置为空
ListEmpty:判断线性表是否为空
ListLength:返回线性表的长度
GetElem:返回线性表中第$index个数据元素
LocateElem:返回给定的数据元素在线性表中的位置
PriorElem:返回指定元素的前一个元素
NextElem:返回指定元素的后一个元素
ListInsert:在第index的位置插入元素elem
ListDelete:删除第index位置的元素elem

PHP线性表顺序存储结构原理示例

<?php
class SeqStoreList {
public $SqArr;
public static $length;
public function __construct($SqArr){
$this->SqArr=$SqArr;
self::$length=count($SqArr);
}

//销毁顺序线性表
public function DestroyList(){
$this->SqArr=null;
self::$length=0;
}

//将线性表重置为空
public function ClearList(){
$this->SqArr=array();
self::$length=0;
}

//判断线性表是否为空
public function ListEmpty(){
if(self::$length==0){
return 'Is null';
}else{
return 'Not null';
}
}

//返回线性表的长度
public function ListLength(){
return self::$length;
}

//返回线性表中第$index个数据元素
public function GetElem($index){
if(self::$length==0 || $index<1 || $index>self::$length){
return 'ERROR';
}
return $this->SqArr[$index-1];
}

//返回给定的数据元素在线性表中的位置
public function LocateElem($elem){
for($i=0;$i<self::$length;$i++){
if($this->SqArr[$i] == $elem){
break;
}
}
if($i>=self::$length){
return 'ERROR';
}
return $i+1;
}

//返回指定元素的前一个元素
public function PriorElem($cur_elem){
for($i=0;$i<self::$length;$i++){
if($this->SqArr[$i] == $cur_elem){
break;
}
}
if($i==0 || $i>=self::$length){
return 'ERROR';
}
return $this->SqArr[$i-1];
}

//返回指定元素的后一个元素
public function NextElem($cur_elem){
for($i=0;$i<self::$length;$i++){
if($this->SqArr[$i] == $cur_elem){
break;
}
}
if($i>=self::$length-1){
return 'ERROR';
}
return $this->SqArr[$i+1];
}

//在第index的位置插入元素elem
public function ListInsert($index,$elem){
if($index<1 || $index>self::$length+1){
return 'ERROR';
}
if($index<=self::$length){
for($i=self::$length-1;$i>=$index-1;$i--){
$this->SqArr[$i+1]=$this->SqArr[$i];
}
}
$this->SqArr[$index-1]=$elem;
self::$length++;
return 'ok';
}

//ListDelete: 删除第index位置的元素elem
public function ListDelete($index){
if($index<1 || $index>self::$length+1){
return 'ERROR';
}
if($index<self::$length){
for($i=$index;$i<self::$length;$i++){
$this->SqArr[$i-1]=$this->SqArr[$i];
}
}
self::$length--;
return $this->SqArr[$index-1];
}
}
赞(0)
声明:本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-62778877-8306;邮箱:fanjiao@west.cn。本站原创内容未经允许不得转载,或转载时需注明出处:西部数码知识库 » PHP线性表顺序存储结构原理

登录

找回密码

注册