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获取文件绝对路径的代码(上一级目录)
May 29 PHP
php读取EXCEL文件 php excelreader读取excel文件
Dec 06 PHP
PHP 获取远程文件大小的3种解决方法
Jul 11 PHP
利用中国天气预报接口实现简单天气预报
Jan 20 PHP
解决Codeigniter不能上传rar和zip压缩包问题
Mar 07 PHP
PHP mkdir()无写权限的问题解决方法
Jun 19 PHP
函数中使用require_once问题深入探讨 优雅的配置文件定义方法推荐
Jul 02 PHP
SESSION存放在数据库用法实例
Aug 08 PHP
php简单实现批量上传图片的方法
May 09 PHP
功能强大的PHP POST提交数据类
Jul 15 PHP
CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)
Nov 21 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读取XML值的代码(推荐)
2011/01/01 PHP
php simplexmlElement操作xml的命名空间实现代码
2011/01/04 PHP
PHP 多维数组的排序问题 根据二维数组中某个项排序
2011/11/09 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十一)
2014/06/25 PHP
php中error与exception的区别及应用
2014/07/28 PHP
php简单实现MVC
2015/02/05 PHP
PHP+Javascript实现在线拍照功能实例
2015/07/18 PHP
js ondocumentready onmouseover onclick onmouseout 样式
2010/07/22 Javascript
Dojo 学习要点
2010/09/03 Javascript
firefox下input type=&quot;file&quot;的size是多大
2011/10/24 Javascript
jquery 插件学习(一)
2012/08/06 Javascript
使用javascript过滤html的字符串(注释标记法)
2013/07/08 Javascript
jQuery浏览器CSS3特写兼容实例
2015/01/19 Javascript
JS实现的另类手风琴效果网页内容切换代码
2015/09/08 Javascript
详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)
2017/02/10 Javascript
Web纯前端“旭日图”实现元素周期表
2017/03/10 Javascript
详解基于webpack搭建react运行环境
2017/06/01 Javascript
js学习心得_一个简单的动画库封装tween.js
2017/07/14 Javascript
vue2.0页面前进刷新回退不刷新的实现方法
2018/07/31 Javascript
Vue-不允许嵌套式的渲染方法
2018/09/13 Javascript
vue cli3.0 引入eslint 结合vscode使用
2019/05/27 Javascript
Vue两个版本的区别和使用方法(更深层次了解)
2020/02/16 Javascript
详解基于element的区间选择组件校验(交易金额)
2021/01/07 Javascript
[00:34]DOTA2上海特级锦标赛 VG战队宣传片
2016/03/04 DOTA
利用PyInstaller将python程序.py转为.exe的方法详解
2017/05/03 Python
Pandas:DataFrame对象的基础操作方法
2018/06/07 Python
Python获取航线信息并且制作成图的讲解
2019/01/03 Python
ffmpeg+Python实现B站MP4格式音频与视频的合并示例代码
2020/10/21 Python
Spy++的使用方法及下载教程
2021/01/29 Python
意大利包包和行李箱销售网站:Bagaglio.it
2021/03/02 全球购物
战略合作协议书范本
2014/04/18 职场文书
公司活动总结范文
2014/07/01 职场文书
2014年新农村建设工作总结
2014/12/01 职场文书
2015年老干部工作总结
2015/04/23 职场文书
学会掌握自己命运的十条黄金法则:
2019/08/08 职场文书