您的位置:首页 > 理论基础 > 数据结构算法

数据结构之线性表――顺序存储结构(php代码实现)

2015-01-01 16:42 666 查看
<?php
/**
*
* 线性表:即零个或多个数据元素的有限序列。
* 线性表的数据结构:即数据元素依此存储在一段地址连续的存储单元内。在高级语言中就表现为数组。
*
* 1. DestroyList: 销毁顺序线性表
* 2. ClearList: 将线性表重置为空
* 3. ListEmpty: 判断线性表是否为空
* 4. ListLength: 返回线性表的长度
* 5. GetElem: 返回线性表中第$index个数据元素
* 6. LocateElem: 返回给定的数据元素在线性表中的位置
* 7. PriorElem: 返回指定元素的前一个元素
* 8. NextElem: 返回指定元素的后一个元素
* 9. ListInsert: 在第index的位置插入元素elem
* 10. ListDelete: 删除第index位置的元素elem
*
*/

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];
}
}


本文出自 “一切皆有可能” 博客,请务必保留此出处http://noican.blog.51cto.com/4081966/1598290
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐