Posted in PHP onFebruary 16, 2012
<?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>';
php线性表顺序存储实现代码(增删查改)
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@