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模板页面中分页代码的解析
Feb 06 PHP
使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT
Apr 23 PHP
php中获取远程客户端的真实ip地址的方法
Aug 03 PHP
php中如何使对象可以像数组一样进行foreach循环
Aug 09 PHP
ThinkPHP模板替换与系统常量及应用实例教程
Aug 22 PHP
PHP使用mysql_fetch_object从查询结果中获取对象集的方法
Mar 18 PHP
php发送邮件的问题详解
Jun 22 PHP
PHP获取网页所有连接的方法(附demo源码下载)
Mar 30 PHP
php倒计时出现-0情况的解决方法
Jul 28 PHP
php-fpm开启状态统计的方法详解
Jun 23 PHP
php项目中类的自动加载实例讲解
Sep 12 PHP
PHP中用Trait封装单例模式的实现
Dec 18 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生成文件
2007/01/15 PHP
什么是MVC,好东西啊
2007/05/03 PHP
PHP 的比较运算与逻辑运算详解
2016/05/12 PHP
PHP常量define和const的区别详解
2019/05/18 PHP
Nigma vs Alliance BO5 第一场2.14
2021/03/10 DOTA
Javascript中的delete介绍
2012/09/02 Javascript
JS JQUERY实现滚动条自动滚到底的方法
2015/01/09 Javascript
详解javascript实现自定义事件
2016/01/19 Javascript
Javascript实现代码折叠功能
2016/08/25 Javascript
vuejs点击class变化的实例
2018/09/05 Javascript
对vue中v-if的常见使用方法详解
2018/09/28 Javascript
Cocos2d实现刮刮卡效果
2018/12/20 Javascript
javascrit中undefined和null的区别详解
2019/04/07 Javascript
解决vue打包后vendor.js文件过大问题
2019/07/03 Javascript
vue 实现LED数字时钟效果(开箱即用)
2019/12/08 Javascript
[07:57]DOTA2热力大趴狂欢夜 广州站活动回顾
2013/11/27 DOTA
Python交换变量
2008/09/06 Python
Python创建模块及模块导入的方法
2015/05/27 Python
全面了解Python的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
Python cookbook(数据结构与算法)将多个映射合并为单个映射的方法
2018/04/19 Python
Python3使用正则表达式爬取内涵段子示例
2018/04/22 Python
11个Python3字典内置方法大全与示例汇总
2019/05/13 Python
AmazeUI 评论列表的实现示例
2020/08/13 HTML / CSS
Tahari ASL官方网站:高级设计师女装
2021/03/15 全球购物
软件测试工程师笔试题带答案
2015/03/27 面试题
Overload和Override的区别
2012/09/02 面试题
python re模块和正则表达式
2021/03/24 Python
领导干部廉政承诺书
2014/03/27 职场文书
高一课前三分钟演讲稿
2014/09/13 职场文书
2014县委书记党的群众路线教育实践活动对照检查材料思想汇报
2014/09/22 职场文书
优秀党支部申报材料
2014/12/24 职场文书
领导欢迎词致辞
2015/01/23 职场文书
材料采购员岗位职责
2015/04/03 职场文书
疑《守望先锋2》A测截图泄露 或将推出新模式、新界面
2022/04/03 其他游戏
python 单机五子棋对战游戏
2022/04/28 Python
Java数据结构之堆(优先队列)
2022/05/20 Java/Android