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 相关文章推荐
桌面中心(一)创建数据库
Oct 09 PHP
php 无限极分类
Mar 27 PHP
php5新改动之短标记启用方法
Sep 11 PHP
centos 5.6 升级php到5.3的方法
May 14 PHP
php验证是否是md5编码的简单代码
Apr 01 PHP
完美解决thinkphp验证码出错无法显示的方法
Dec 09 PHP
PHP学习笔记(三):数据类型转换与常量介绍
Apr 17 PHP
在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
Feb 23 PHP
php微信开发之上传临时素材
Jun 24 PHP
Yii2中关联查询简单用法示例
Aug 10 PHP
php微信公众平台开发之微信群发信息
Sep 13 PHP
Windows平台PHP+IECapt实现网页批量截图并创建缩略图功能详解
Aug 02 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
PHP5.3与5.5废弃与过期函数整理汇总
2014/07/10 PHP
JavaScript判断变量是否为undefined的两种写法区别
2013/12/04 Javascript
javascript文件中引用依赖的js文件的方法
2014/03/17 Javascript
JavaScript设计模式之装饰者模式介绍
2014/12/28 Javascript
jquery实现对联广告的方法
2015/02/05 Javascript
jquery中$each()方法的使用指南
2015/04/30 Javascript
每天一篇javascript学习小结(Date对象)
2015/11/13 Javascript
详解JavaScript跨域总结与解决办法
2016/10/31 Javascript
详解Sea.js中Module.exports和exports的区别
2017/02/12 Javascript
详解通过JSON数据使用VUE.JS
2017/05/26 Javascript
微信小程序swiper组件用法实例分析【附源码下载】
2017/12/07 Javascript
js中时间格式化的几种方法
2018/07/22 Javascript
React如何解决fetch跨域请求时session失效问题
2018/11/02 Javascript
原生js实现针对Dom节点的CRUD操作示例
2019/08/26 Javascript
JavaScript 防抖和节流遇见的奇怪问题及解决
2020/11/20 Javascript
[03:55]DOTA2完美大师赛选手传记——LFY.MONET
2017/11/18 DOTA
Python实现将目录中TXT合并成一个大TXT文件的方法
2015/07/15 Python
python正则表达式re之compile函数解析
2017/10/25 Python
Python根据指定日期计算后n天,前n天是哪一天的方法
2018/05/29 Python
python验证码识别教程之利用滴水算法分割图片
2018/06/05 Python
Python中使用Counter进行字典创建以及key数量统计的方法
2018/07/06 Python
Python类的继承用法示例
2019/01/31 Python
使用Python在Windows下获取USB PID&amp;VID的方法
2019/07/02 Python
python批量解压zip文件的方法
2019/08/20 Python
python飞机大战 pygame游戏创建快速入门详解
2019/12/17 Python
利用Python脚本实现自动刷网课
2020/02/03 Python
python怎么调用自己的函数
2020/07/01 Python
CSS3 animation实现简易幻灯片轮播特效
2016/09/27 HTML / CSS
纽约服装和生活方式品牌:Saturdays NYC
2017/08/13 全球购物
Osklen官方在线商店:巴西服装品牌
2019/04/25 全球购物
买房子个人收入证明
2014/01/16 职场文书
廉洁教育学习材料
2014/05/19 职场文书
幼儿园圣诞节活动总结
2015/05/06 职场文书
巾帼建功标兵先进事迹材料
2016/02/29 职场文书
Python 使用dict实现switch的操作
2021/04/07 Python
MySQL表字段时间设置默认值
2021/05/13 MySQL