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