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将mysql数据库整库导出生成sql文件的具体实现
Jan 08 PHP
PHP解析html类库simple_html_dom的转码bug
May 22 PHP
php模仿asp Application对象在线人数统计实现方法
Jan 04 PHP
又十个超级有用的PHP代码片段
Sep 24 PHP
PHP记录页面停留时间的方法
Mar 30 PHP
JSON两种结构之对象和数组的理解
Jul 19 PHP
thinkPHP框架实现多表查询的方法
Jun 14 PHP
php写app用的框架整理
Sep 29 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
Oct 17 PHP
php下的原生ajax请求用法实例分析
Feb 28 PHP
XAMPP升级PHP版本实现步骤解析
Sep 04 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/04/28 PHP
php $_ENV为空的原因分析
2009/06/01 PHP
PHP中的integer类型使用分析
2010/07/27 PHP
基于curl数据采集之单页面并行采集函数get_htmls的使用
2013/04/28 PHP
微信公众号开发之语音消息识别php代码
2016/08/08 PHP
Gambit vs CL BO3 第二场 2.13
2021/03/10 DOTA
一步一步制作jquery插件Tabs实现过程
2010/07/06 Javascript
用javascript读取xml文件读取节点数据
2014/08/12 Javascript
jquery使用remove()方法删除指定class子元素
2015/03/26 Javascript
JS判断字符串包含的方法
2015/05/05 Javascript
JavaScript中的anchor()方法使用详解
2015/06/08 Javascript
JS实现来回出现文字的状态栏特效代码
2015/10/31 Javascript
js获取地址栏中传递的参数(两种方法)
2017/02/08 Javascript
vue 如何添加全局函数或全局变量以及单页面的title设置总结
2017/06/01 Javascript
Vuex 入门教程
2018/01/10 Javascript
Vue组件和Route的生命周期实例详解
2018/02/10 Javascript
基于vue+axios+lrz.js微信端图片压缩上传方法
2019/06/25 Javascript
JS实现返回上一页并刷新页面的方法分析
2019/07/16 Javascript
详解微信小程序轨迹回放实现及遇到的坑
2021/02/02 Javascript
django实现分页的方法
2015/05/26 Python
python2.7实现爬虫网页数据
2018/05/25 Python
Django上线部署之IIS的配置方法
2019/08/22 Python
详解Python3 pickle模块用法
2019/09/16 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
2019/11/29 Python
使用python matploblib库绘制准确率,损失率折线图
2020/06/16 Python
python代码区分大小写吗
2020/06/17 Python
不用游标的SQL语句有哪些
2012/09/07 面试题
和平主题的演讲稿
2014/01/12 职场文书
计算机专业优秀大学生自我总结
2014/01/21 职场文书
3分钟演讲稿
2014/04/30 职场文书
上党课的心得体会
2014/09/02 职场文书
某集团股份有限公司委托书样本
2014/09/24 职场文书
七年级生物教学反思
2016/02/20 职场文书
公司转让协议书
2016/03/19 职场文书
golang slice元素去重操作
2021/04/30 Golang
详解Python函数print用法
2021/06/18 Python