php线性表顺序存储实现代码(增删查改)


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 相关文章推荐
PHP5.2下chunk_split()函数整数溢出漏洞 分析
Jun 06 PHP
php引用返回与取消引用的详解
Jun 08 PHP
基于php冒泡排序算法的深入理解
Jun 09 PHP
php5.3以后的版本连接sqlserver2000的方法
Jul 28 PHP
PHP判断一个字符串是否是回文字符串的方法
Mar 23 PHP
PHP添加图片水印、压缩、剪切的封装类
Aug 17 PHP
PHP函数func_num_args用法实例分析
Dec 07 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
Feb 07 PHP
Laravel多域名下字段验证的方法
Apr 04 PHP
PHP判断一个变量是否为整数、正整数的方法示例
Sep 11 PHP
PHP常用函数之格式化时间操作示例
Oct 21 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
Mar 26 PHP
用PHP实现Ftp用户的在线管理
Feb 16 #PHP
PHP排序算法的复习和总结
Feb 15 #PHP
php网上商城购物车设计代码分享
Feb 15 #PHP
php后台多用户权限组思路与实现程序代码分享
Feb 13 #PHP
php _autoload自动加载类与机制分析
Feb 10 #PHP
php 文本文件的读取效率
Feb 10 #PHP
php+iframe实现隐藏无刷新上传文件
Feb 10 #PHP
You might like
php遍历目录viewDir函数
2009/12/15 PHP
php读取csv文件后,uft8 bom导致在页面上显示出现问题的解决方法
2013/08/10 PHP
destoon公司主页模板风格的添加方法
2014/06/20 PHP
PHP生成plist数据的方法
2015/06/16 PHP
PHP比较运算符的详细介绍
2015/09/29 PHP
php版微信公众平台开发之验证步骤实例详解
2016/09/23 PHP
thinkPHP分页功能实例详解
2017/05/05 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
Laravel如何实现自动加载类
2019/10/14 PHP
JavaScript 函数式编程的原理
2009/10/16 Javascript
jquery的ajax()函数传值中文乱码解决方法介绍
2012/11/08 Javascript
jQuery 的全选(全非选)即取得被选中的值使用介绍
2013/11/12 Javascript
深入解析JavaScript中的变量作用域
2013/12/06 Javascript
setTimeout()与setInterval()方法区别介绍
2013/12/24 Javascript
一个不错的仿携程自定义数据下拉选择select
2014/09/01 Javascript
简介EasyUI datagrid editor combogrid搜索框的实现
2016/04/01 Javascript
JS 对象(Object)和字符串(String)互转方法
2016/05/20 Javascript
jQuery的层级查找方式分析
2016/06/16 Javascript
JS实现淡入淡出图片效果的方法分析
2016/12/20 Javascript
js基于myFocus实现轮播图效果
2017/02/14 Javascript
微信小程序支付及退款流程详解
2017/11/30 Javascript
解决Vue不能检测数组或对象变动的问题
2018/02/24 Javascript
vue解决花括号数据绑定不成功的问题
2019/10/30 Javascript
jquery css实现流程进度条
2020/03/26 jQuery
对python 矩阵转置transpose的实例讲解
2018/04/17 Python
numpy返回array中元素的index方法
2018/06/27 Python
使用Numpy读取CSV文件,并进行行列删除的操作方法
2018/07/04 Python
PyTorch中的padding(边缘填充)操作方式
2020/01/03 Python
tensorflow自定义激活函数实例
2020/02/04 Python
英国Boots旗下太阳镜网站:Boots Designer Sunglasses
2018/07/07 全球购物
Foot Locker英国官网:美国知名运动产品零售商
2019/02/21 全球购物
服装厂厂长职责
2013/12/16 职场文书
马云北大演讲完整版:真心话,什么才是阿里的核心竞争力?
2014/04/04 职场文书
食品安全承诺书范文
2014/08/29 职场文书
第28个世界无烟日活动总结
2015/02/10 职场文书
2016学习医德医风心得体会
2016/01/25 职场文书