代码如下: <?php /* *文件名:linearList.php * 功能:数据结构线性表的顺序存储实现 * author:黎锦焕 * @copyright:www.drw1314.com */ class linearList { private $arr; private $length; const MAXSIZE=100; /* *构造函数,判断空表还是飞空表,并且进行实例化 * @param array $arr 输入的数组 * @param int $n 输入数组的长度 * @ruturn void; */ function __construct($arr,$n) { if($n>self::MAXSIZE) { echo ''对不起,数组的长度''.$n.''超出了内存空间!''.self::MAXSIZE; } else if($n<0) { echo ''异常,长度不能为负数。''; } else if($n==0) { echo ''<br/>....你创建了一张空表,数组长度为0....<br/><br/>''; $this->arr=$arr; $this->length=$n; }else{ echo ''<br/>....成功创建一张表....<br/><br/>''; $this->arr=$arr; $this->length=$n; } } /* *按位查找,返回查找到的值 * @ruturn string; * @param int $n 查找的位置 */ function findValue($n) { if($n>$this->length||$n<1){ return ''输入的位置''.$n.''不正确,请在1到''.$this->length.''的范围内''; } return ''你要找的第''.$n.''位的值为''.$this->arr[$n-1]; } /* *按值查找,返回查找到的位置 * @ruturn string; * @param int $n 查找的值 */ function findSite($n) { for($i=0;$i<$this->length;$i++){ if($this->arr[$i]==$n){ $b=$i+1; return ''你要找的值''.$n.''对应的位置为''.$b; }else{ $v=false; } } if(!$v){ return ''你所找的值''.$n.''不存在''; } } /* *在选定的位置处插入某个值 * @ruturn array; * @param int $i 插入位置 * @param int $v 插入的值 */ function insertValue($i,$v) { if($i<1||$i>self::MAXSIZE){ echo ''插入的位置''.$i.''不正确,请在1到''.self::MAXSIZE.''的范围内''; return ; } for($h=$this->length;$h>=$i;$h--){ $this->arr[$h]=$this->arr[$h-1]; } if($i>$this->length){ $this->arr[$this->length]=$v; }else{ $this->arr[$i-1]=$v; } $this->length++; return $this->arr; } /* *在选定的位置删除某个值 * @ruturn array; * @param int $i 位置 */ function deleteValue($i) { if($i<1||$i>$this->length){ echo ''选定的位置''.$i.''不正确,请在1到''.$this->length.''的范围内''; return ; } for($j=$i;$j<$this->length;$j++){ $this->arr[$j-1]=$this->arr[$j]; } unset($this->arr[$this->length-1]); $this->length--; return $this->arr; } function __destruct(){ if($this->length==0){ echo ''<br/>...销毁一张空表...<br/>''; }else{ echo ''<br/>...成功销毁一张表..<br/>''; } } } //下面是使用案例 $arr=array(10,125,123,1,4); $n=5; $linearList=new linearList($arr, $n); echo $linearList->findValue(5).''<br/>''; echo $linearList->findSite(4).''<br/>''; echo ''<pre>''; print_r($linearList->insertValue(20,300)); echo ''</pre>''; echo ''<pre>''; print_r($linearList->deleteValue(1)); echo ''</pre>''; (责任编辑:admin) |