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 相关文章推荐
PHP4实际应用经验篇(3)
Oct 09 PHP
又一个php 分页类实现代码
Dec 03 PHP
PHP中array_merge和array相加的区别分析
Jun 17 PHP
通过curl模拟post和get方式提交的表单类
Apr 23 PHP
PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例
May 11 PHP
php实现转换html格式为文本格式的方法
May 16 PHP
详解PHP原生DOM对象操作XML的方法
Oct 17 PHP
php禁用cookie后session设置方法分析
Oct 19 PHP
基于thinkPHP类的插入数据库操作功能示例
Jan 06 PHP
php制作圆形用户头像的实例_自定义封装类源代码
Sep 18 PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
Oct 21 PHP
有关PHP 中 config.m4 的探索
Aug 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
第十三节 对象串行化 [13]
2006/10/09 PHP
计算一段日期内的周末天数的php代码(星期六,星期日总和)
2009/11/12 PHP
ThinkPHP自动验证失败的解决方法
2011/06/09 PHP
PHP+shell实现多线程的方法
2015/07/01 PHP
php+jQuery实现的三级导航栏下拉菜单显示效果
2017/08/10 PHP
Laravel程序架构设计思路之使用动作类
2018/06/07 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
jQuery的一些注意
2006/12/06 Javascript
Jquery 常用方法经典总结
2010/01/28 Javascript
js 刷新页面的代码小结 推荐
2010/04/02 Javascript
基于JQuery模仿苹果桌面的Dock效果(初级版)
2012/10/15 Javascript
二叉树的非递归后序遍历算法实例详解
2014/02/07 Javascript
JavaScript事件委托的技术原理探讨示例
2014/04/17 Javascript
Js实现简单的小球运动特效
2016/02/18 Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
2016/02/25 Javascript
JavaScript中利用jQuery绑定事件的几种方式小结
2016/03/06 Javascript
JavaScript实现弹出DIV层同时页面背景渐变成半透明效果
2016/03/25 Javascript
详解JavaScript的另类写法
2016/04/11 Javascript
JS实现图片的不间断连续滚动的简单实例
2016/06/03 Javascript
jQuery实现简单倒计时功能的方法
2016/07/04 Javascript
JS键盘版计算器的制作方法
2016/12/03 Javascript
JQuery实现定时刷新功能代码
2017/05/09 jQuery
基于mpvue小程序使用echarts画折线图的方法示例
2019/04/24 Javascript
利用原生JavaScript实现造日历轮子实例代码
2019/05/08 Javascript
JS实现简单的文字无缝上下滚动功能示例
2019/06/22 Javascript
vue 中 命名视图的用法实例详解
2019/08/14 Javascript
js遍历详解(forEach, map, for, for...in, for...of)
2019/08/28 Javascript
Python输出带颜色的字符串实例
2017/10/10 Python
Python模块的加载讲解
2019/01/15 Python
Python二进制文件读取并转换为浮点数详解
2019/06/25 Python
如何在scrapy中捕获并处理各种异常
2020/09/28 Python
日化店促销方案
2014/03/26 职场文书
2014年化妆品销售工作总结
2014/12/01 职场文书
2015年护士长个人工作总结
2015/04/24 职场文书
小学作文之描写天气
2019/08/15 职场文书
AngularJS实现多级下拉框
2022/03/25 Javascript