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之真OO
Oct 09 PHP
PHP strstr 函数判断字符串是否否存在的实例代码
Sep 28 PHP
PHP上传图片进行等比缩放可增加水印功能
Jan 13 PHP
PHP常用技术文之文件操作和目录操作总结
Sep 27 PHP
54个提高PHP程序运行效率的方法
Jul 19 PHP
php实现网站留言板功能
Nov 04 PHP
Yii中的relations数据关联查询及统计功能用法详解
Jul 14 PHP
PHP接收App端发送文件流的方法
Sep 23 PHP
php并发加锁示例
Oct 17 PHP
在IIS下安装PHP扩展的方法(超简单)
Apr 10 PHP
浅谈Laravel核心解读之Console内核
Dec 02 PHP
laravel框架中控制器的创建和使用方法分析
Nov 23 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隐藏IP地址后两位显示为星号的方法
2014/11/21 PHP
php图片水印添加、压缩、剪切的封装类实现
2020/04/18 PHP
利用switch语句进行多选一判断的实例代码
2016/11/14 PHP
PHP实现的激活用户注册验证邮箱功能示例
2017/06/06 PHP
360搜索引擎自动收录php改写方案
2018/04/28 PHP
PHP实现的数据对象映射模式详解
2019/03/20 PHP
laravel框架分组控制器和分组路由实现方法示例
2020/01/25 PHP
jQuery实现在最后一个元素之前插入新元素的方法
2015/07/18 Javascript
jQuery Validation PlugIn的使用方法详解
2015/12/18 Javascript
jQuery+JSON实现AJAX二级联动实例分析
2015/12/18 Javascript
jquery+css3实现会动的小圆圈效果
2016/01/27 Javascript
jQuery简单实现MD5加密的方法
2017/03/03 Javascript
ES6字符串模板,剩余参数,默认参数功能与用法示例
2017/04/06 Javascript
基于Node的React图片上传组件实现实例代码
2017/05/10 Javascript
iview给radio按钮组件加点击事件的实例
2017/09/30 Javascript
详解React之父子组件传递和其它一些要点
2018/06/25 Javascript
关于Vue组件库开发详析
2018/07/01 Javascript
vue-router启用history模式下的开发及非根目录部署方法
2018/12/23 Javascript
微信小程序组件传值图示过程详解
2019/07/31 Javascript
微信小程序npm引入vant-weapp的踩坑记录
2019/08/01 Javascript
vue router动态路由设置参数可选问题
2019/08/21 Javascript
微信小程序使用自定义组件导航实现当前页面高亮
2020/01/02 Javascript
详解Django之auth模块(用户认证)
2018/04/17 Python
对python多线程SSH登录并发脚本详解
2019/02/14 Python
python实现集中式的病毒扫描功能详解
2019/07/09 Python
python pandas cumsum求累计次数的用法
2019/07/29 Python
python实现身份证实名认证的方法实例
2019/11/08 Python
python SOCKET编程基础入门
2021/02/27 Python
小学生环保演讲稿
2014/04/25 职场文书
村主任“四风”问题个人整改措施
2014/10/04 职场文书
离婚协议书怎么写的
2014/12/14 职场文书
2015年除四害工作总结
2015/07/23 职场文书
班主任工作总结范文
2015/08/13 职场文书
小学语文继续教育研修日志
2015/11/13 职场文书
JavaScript流程控制(循环)
2021/12/06 Javascript
Java设计模式之代理模式
2022/04/22 Java/Android