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 相关文章推荐
smarty+adodb+部分自定义类的php开发模式
Dec 31 PHP
php下实现一个阿拉伯数字转中文数字的函数
Jul 10 PHP
PHP中的strtr函数使用介绍(str_replace)
Oct 20 PHP
php获取用户IPv4或IPv6地址的代码
Nov 15 PHP
php实现在线生成条形码示例分享(条形码生成器)
Dec 30 PHP
PHP面向对象之旅:深入理解static变量与方法
Jan 06 PHP
一组PHP加密解密函数分享
Jun 05 PHP
PHP JSON出错:Cannot use object of type stdClass as array解决方法
Aug 16 PHP
PHP+jQuery+Ajax实现用户登录与退出
Apr 27 PHP
phpStorm+XDebug+chrome 配置详解
Apr 01 PHP
PHP正则表达式函数preg_replace用法实例分析
Jun 04 PHP
php实现统计IP数及在线人数的示例代码
Jul 22 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超级全局变量数组小结
2012/10/04 PHP
PHP调用MySQL存储过程并返回值的方法
2014/12/26 PHP
PHP实现支持SSL连接的SMTP邮件发送类
2015/03/05 PHP
CheckBox 如何实现全选?
2006/06/23 Javascript
JS是否可以跨文件同时控制多个iframe页面的应用技巧
2007/12/16 Javascript
javascript的键盘控制事件说明
2008/04/15 Javascript
javascript 一些用法小结
2009/09/11 Javascript
js Math 对象的方法
2013/09/01 Javascript
JQuery实现的购物车功能(可以减少或者添加商品并自动计算价格)
2015/01/13 Javascript
js中apply与call简单用法详解
2017/11/06 Javascript
详解Vue SPA项目优化小记
2018/07/03 Javascript
微信小程序动态设置图片大小的方法
2019/11/21 Javascript
解决vue-photo-preview 异步图片放大失效的问题
2020/07/29 Javascript
javascript中call,apply,bind的区别详解
2020/12/11 Javascript
Python模仿POST提交HTTP数据及使用Cookie值的方法
2014/11/10 Python
Python中用PIL库批量给图片加上序号的教程
2015/05/06 Python
Python实现获取命令行输出结果的方法
2017/06/10 Python
Python分析学校四六级过关情况
2017/11/22 Python
python自动裁剪图像代码分享
2017/11/25 Python
浅谈配置OpenCV3 + Python3的简易方法(macOS)
2018/04/02 Python
使用sklearn进行对数据标准化、归一化以及将数据还原的方法
2018/07/11 Python
使用Python 正则匹配两个特定字符之间的字符方法
2018/12/24 Python
python+opencv 读取文件夹下的所有图像并批量保存ROI的方法
2019/01/10 Python
Python中按值来获取指定的键
2019/03/04 Python
pandas 选取行和列数据的方法详解
2019/08/08 Python
解析Python 偏函数用法全方位实现
2020/06/26 Python
pycharm 2020 1.1的安装流程
2020/09/29 Python
关于css中margin的值和垂直外边距重叠问题
2020/10/27 HTML / CSS
米兰必去买手店排行榜首位:Antonioli
2016/09/11 全球购物
Tiqets荷兰:出售欧洲最美丽的景点和博物馆门票
2018/01/09 全球购物
linux面试题参考答案(8)
2016/04/19 面试题
入学证明
2015/06/23 职场文书
导游词之吉林吉塔
2019/11/11 职场文书
MySQL触发器的使用
2021/05/24 MySQL
pytorch model.cuda()花费时间很长的解决
2021/06/01 Python
浅析MongoDB之安全认证
2021/06/26 MongoDB