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 相关文章推荐
Mysql的GROUP_CONCAT()函数使用方法
Mar 28 PHP
php 模拟 asp.net webFrom 按钮提交事件的思路及代码
Dec 02 PHP
php calender(日历)二个版本代码示例(解决2038问题)
Dec 24 PHP
php上传图片存入数据库示例分享
Mar 11 PHP
PHP缓存机制Output Control详解
Jul 14 PHP
CI框架学习笔记(二) -入口文件index.php
Oct 27 PHP
php常见的魔术方法详解
Dec 25 PHP
php使用post数组的键值创建同名变量并赋值的方法
Apr 03 PHP
php将日期格式转换成xx天前的格式
Apr 16 PHP
PHP数组游标实现对数组的各种操作详解
Jan 26 PHP
Symfony2联合查询实现方法
Mar 18 PHP
php生成带logo二维码方法小结
Apr 08 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
杏林同学录(六)
2006/10/09 PHP
PHP 的几个配置文件函数
2006/12/21 PHP
php打开远程文件的方法和风险及解决方法
2013/11/12 PHP
PHP把网页保存为word文件的三种方法
2014/04/01 PHP
php多次include后导致全局变量global失效的解决方法
2015/02/28 PHP
jquery+php实现导出datatables插件数据到excel的方法
2015/07/06 PHP
详谈phpAdmin修改密码后拒绝访问的问题
2017/04/03 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
jquery 选择器部分整理
2009/10/28 Javascript
jquery 学习之二 属性相关
2010/11/23 Javascript
JQuery 1.6发布 性能提升,同时包含大量破坏性变更
2011/05/10 Javascript
JS 自定义带默认值的函数
2011/07/21 Javascript
基于jquery可配置循环左右滚动例子
2011/09/09 Javascript
简略说明Javascript中的= =(等于)与= = =(全等于)区别
2013/04/16 Javascript
JavaScript字符串对象substr方法入门实例(用于截取字符串)
2014/10/16 Javascript
基于JQuery的$.ajax方法进行异步请求导致页面闪烁的解决办法
2016/05/10 Javascript
基于jPlayer三分屏的制作方法
2016/12/21 Javascript
聊聊那些使用前端Javascript实现的机器学习类库
2017/09/18 Javascript
vuejs使用递归组件实现树形目录的方法
2017/09/30 Javascript
js 中rewrap-ajax.js插件实例代码
2017/10/20 Javascript
AngularJS实现的根据数量与单价计算总价功能示例
2017/12/26 Javascript
微信小程序实现日历功能
2018/11/27 Javascript
layer页面跳转,获取html子节点元素的值方法
2019/09/27 Javascript
wxpython 学习笔记 第一天
2009/02/09 Python
Python 错误和异常小结
2013/10/09 Python
Python多层嵌套list的递归处理方法(推荐)
2016/06/08 Python
mac系统安装Python3初体验
2018/01/02 Python
对sklearn的使用之数据集的拆分与训练详解(python3.6)
2018/12/14 Python
浅谈Django2.0 加xadmin踩的坑
2019/11/15 Python
python opencv图片编码为h264文件的实例
2019/12/12 Python
TensorFlow——Checkpoint为模型添加检查点的实例
2020/01/21 Python
手机端用rem+scss做适配的详解
2017/11/15 HTML / CSS
个人欠款协议书范本2014
2014/11/02 职场文书
党员“一帮一”活动总结
2015/05/07 职场文书
傲慢与偏见读书笔记
2015/06/29 职场文书
Spring实现内置监听器
2021/07/09 Java/Android