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个人网站架设连环讲(四)
Oct 09 PHP
php 中文字符入库或显示乱码问题的解决方法
Apr 12 PHP
用Php编写注册后Email激活验证的实例代码
Mar 11 PHP
基于PHP静态类的原罪详解
May 06 PHP
PHP生成验证码时“图像因其本身有错无法显示”的解决方法
Aug 07 PHP
PHP中的Memcache详解
Apr 05 PHP
Yii2针对指定url的生成及图片等的引入方法小结
Jul 18 PHP
thinkPHP5框架导出Excel文件简单操作示例
Aug 03 PHP
PHP从零开始打造自己的MVC框架之入口文件实现方法详解
Jun 03 PHP
PHP生成zip压缩包的常用方法示例
Aug 22 PHP
PHP实现笛卡尔积算法的实例讲解
Dec 22 PHP
让你的PHP,APACHE,NGINX支持大文件上传
Mar 09 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 socket的讲解与实例分析
2013/06/13 PHP
php加速器eAccelerator的配置参数、API详解
2014/05/05 PHP
用PHP生成excel文件到指定目录
2015/06/22 PHP
javascript dom 操作详解 js加强
2009/07/13 Javascript
javascript 学习笔记(onchange等)
2010/11/14 Javascript
使用jquery 简单实现下拉菜单
2015/01/14 Javascript
js的flv视频播放器插件使用方法
2015/06/23 Javascript
判断是否存在子节点的实现代码
2016/05/18 Javascript
全面解析Bootstrap中Carousel轮播的使用方法
2016/06/13 Javascript
jQuery轻松实现无缝轮播效果
2017/03/22 jQuery
理解 Node.js 事件驱动机制的原理
2017/08/16 Javascript
nodejs调取微信收货地址的方法
2017/12/20 NodeJs
vue中的$emit 与$on父子组件与兄弟组件的之间通信方式
2018/05/13 Javascript
详解vue添加删除元素的方法
2018/06/30 Javascript
webpack4.0 入门实践教程
2018/10/08 Javascript
基于jquery实现九宫格拼图小游戏
2018/11/30 jQuery
JavaScript数组、json对象、eval()函数用法实例分析
2019/02/21 Javascript
优化Vue项目编译文件大小的方法步骤
2019/05/27 Javascript
Vue移动端右滑屏幕返回上一页附源码下载
2019/06/26 Javascript
JS实现json数组排序操作实例分析
2019/10/28 Javascript
Python采集腾讯新闻实例
2014/07/10 Python
Python编程实现蚁群算法详解
2017/11/13 Python
python实现机器学习之元线性回归
2018/09/06 Python
python代码编写计算器小程序
2020/03/30 Python
jenkins+python自动化测试持续集成教程
2020/05/12 Python
纯HTML5+CSS3制作生日蛋糕(代码易懂)
2016/11/16 HTML / CSS
中医药大学毕业生自荐信
2013/11/08 职场文书
网上书店创业计划书
2014/01/12 职场文书
幼儿园教师请假制度
2014/01/16 职场文书
主要负责人任命书
2014/06/06 职场文书
生产助理岗位职责
2014/06/18 职场文书
“四风”问题的主要表现和危害思想汇报
2014/09/19 职场文书
员工升职自我评价
2019/03/26 职场文书
vue实现简单数据双向绑定
2021/04/28 Vue.js
SQL 尚未定义空闲 CPU 条件 - OnIdle 作业计划将不起任何作用
2021/06/30 SQL Server
WINDOWS 64位 下安装配置mysql8.0.25最详细的教程
2022/03/22 MySQL