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输出控制功能在简繁体转换中的应用
Oct 09 PHP
php 文件上传实例代码
Apr 19 PHP
Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
Jun 14 PHP
php解析html类库simple_html_dom(详细介绍)
Jul 05 PHP
解析PHP中的unset究竟会不会释放内存
Jul 18 PHP
PHP二维数组排序的3种方法和自定义函数分享
Apr 09 PHP
PHP中怎样防止SQL注入分析
Oct 23 PHP
支持png透明图片的php生成缩略图类分享
Feb 08 PHP
php实现图片转换成ASCII码的方法
Apr 03 PHP
php通过文件头判断格式的方法
May 28 PHP
php中array_slice和array_splice函数解析
Oct 18 PHP
关于laravel 日志写入失败问题汇总
Oct 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
计算2000年01月01日起到指定日的天数
2006/10/09 PHP
PHP常用代码大全(新手入门必备)
2010/06/29 PHP
php面向对象 字段的声明与使用
2012/06/14 PHP
destoon官方标签大全
2014/06/20 PHP
PHPExcel内存泄漏问题解决方法
2015/01/23 PHP
[原创]解决wincache不支持64位PHP5.5/5.6的问题(提供64位wincache下载)
2016/06/22 PHP
php基于curl实现的股票信息查询类实例
2016/11/11 PHP
Zend Framework过滤器Zend_Filter用法详解
2016/12/09 PHP
Yii2.0中使用js异步删除示例
2017/03/10 PHP
tp5(thinkPHP5框架)时间查询操作实例分析
2019/05/29 PHP
JavaScript中去掉数组中的重复值的实现方法
2011/08/03 Javascript
jQuery+css+html实现页面遮罩弹出框
2013/03/21 Javascript
jQuery弹性滑动导航菜单实现思路及代码
2013/05/02 Javascript
jquery实现多级下拉菜单的实例代码
2013/10/02 Javascript
js读取csv文件并使用json显示出来
2015/01/09 Javascript
Jquery中的$.each获取各种返回类型数据的使用方法
2015/05/03 Javascript
jQuery插件Timelinr 实现时间轴特效
2015/10/04 Javascript
jquery trigger实现联动的方法
2016/02/29 Javascript
利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
2017/04/24 Javascript
Vue 动态组件components和v-once指令的实现
2019/08/30 Javascript
jQuery编写QQ简易聊天框
2020/08/27 jQuery
[04:44]DOTA2西游记战队视频彩蛋流出 师徒开黑巧遇林书豪
2016/08/03 DOTA
[45:17]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第三场 1月9日
2021/03/11 DOTA
kNN算法python实现和简单数字识别的方法
2014/11/18 Python
Python实现对字符串的加密解密方法示例
2017/04/29 Python
对pandas中iloc,loc取数据差别及按条件取值的方法详解
2018/11/06 Python
python检测服务器端口代码实例
2019/08/31 Python
Python绘制词云图之可视化神器pyecharts的方法
2021/02/23 Python
html5弹跳球示例代码
2013/07/23 HTML / CSS
GWebs公司笔试题
2012/05/04 面试题
公司总经理岗位职责
2015/04/01 职场文书
慈善募捐倡议书
2015/04/27 职场文书
2015年音乐教师个人工作总结
2015/05/20 职场文书
钢铁是怎样炼成的读书笔记
2015/06/29 职场文书
校运会广播稿
2015/08/19 职场文书
使用Django实现商城验证码模块的方法
2021/06/01 Python