php线性表顺序存储实现代码(增删查改)
php线性表顺序存储实现代码(增删查改)
发布时间:2016-12-29 来源:查字典编辑
摘要:复制代码代码如下:

复制代码 代码如下:

<?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教程学习
热门php教程学习
编程开发子分类