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 相关文章推荐
刚才在简化php的库,结果发现很多东西
Dec 31 PHP
利用PHP制作简单的内容采集器的原理分析
Oct 01 PHP
Zend 输出产生XML解析错误
Mar 03 PHP
PHP中对各种加密算法、Hash算法的速度测试对比代码
Jul 08 PHP
ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法
Nov 04 PHP
一个经典实用的PHP图像处理类分享
Nov 18 PHP
Yii2 assets清除缓存的方法
May 16 PHP
CI框架中$this-&gt;load-&gt;library()用法分析
May 18 PHP
浅析PHP开发规范
Feb 05 PHP
php 将json格式数据转换成数组的方法
Aug 21 PHP
php array_chunk()函数用法与注意事项
Jul 12 PHP
Laravel框架下的Contracts契约详解
Mar 17 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 魔术方法使用说明
2009/10/20 PHP
php中AES加密解密的例子小结
2014/02/18 PHP
asp.net HttpHandler实现图片防盗链
2009/11/09 Javascript
javascript实现随时变化着的背景颜色
2015/04/02 Javascript
javascript面向对象程序设计高级特性经典教程(值得收藏)
2016/05/19 Javascript
Bootstrap简单表单显示学习笔记
2016/11/15 Javascript
ng-options和ng-checked在表单中的高级运用(推荐)
2017/01/21 Javascript
Vue2 使用 Echarts 创建图表实例代码
2017/05/18 Javascript
Vue实现百度下拉提示搜索功能
2017/06/21 Javascript
详解vue项目构建与实战
2017/06/27 Javascript
在vue项目创建的后初始化首次使用stylus安装方法分享
2018/01/25 Javascript
webpack4 处理SCSS的方法示例
2018/09/03 Javascript
在layui下对元素进行事件绑定的实例
2019/09/06 Javascript
python使用正则表达式分析网页中的图片并进行替换的方法
2015/03/26 Python
在Django的session中使用User对象的方法
2015/07/23 Python
Python中的with语句与上下文管理器学习总结
2016/06/28 Python
轻松掌握python设计模式之访问者模式
2016/11/18 Python
numpy matrix和array的乘和加实例
2018/06/28 Python
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
2019/06/05 Python
解决django服务器重启端口被占用的问题
2019/07/26 Python
pytorch-神经网络拟合曲线实例
2020/01/15 Python
tensorflow模型保存、加载之变量重命名实例
2020/01/21 Python
如何创建一个Flask项目并进行简单配置
2020/11/18 Python
python日志通过不同的等级打印不同的颜色(示例代码)
2021/01/13 Python
Spartoo比利时:欧洲时尚购物网站
2017/12/06 全球购物
多媒体编辑专业毕业生推荐信
2013/11/05 职场文书
幼儿园家长寄语
2014/04/02 职场文书
竞争与合作演讲稿
2014/05/12 职场文书
防灾减灾活动总结
2014/08/30 职场文书
警察群众路线对照检查材料思想汇报
2014/10/01 职场文书
青年文明号汇报材料
2014/12/23 职场文书
交通安全宣传标语(100条)
2019/08/22 职场文书
导游词之南京莫愁湖公园
2019/11/13 职场文书
Springboot如何同时装配两个相同类型数据库
2021/11/17 Java/Android
css3手动实现pc端横向滚动
2022/06/21 HTML / CSS
ssh服务器拒绝了密码 请再试一次已解决(亲测有效)
2022/08/14 Servers