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
ThinkPHP 防止表单重复提交的方法
Aug 08 PHP
php堆排序(heapsort)练习
Nov 13 PHP
分享一则PHP定义函数代码
Feb 26 PHP
PHP使用CURL实现多线程抓取网页
Apr 30 PHP
PHP检测用户语言的方法
Jun 15 PHP
PHP实现微信发红包程序
Aug 24 PHP
PHP针对多用户实现更换头像功能
Sep 04 PHP
PHP读取并输出XML文件数据的简单实现方法
Dec 22 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
Jul 22 PHP
php写入文件不覆盖的实例讲解
Sep 17 PHP
如何在Laravel5.8中正确地应用Repository设计模式
Nov 26 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
用Socket发送电子邮件(利用需要验证的SMTP服务器)
2006/10/09 PHP
web方式ftp
2006/10/09 PHP
ThinkPHP让分页保持搜索状态的方法
2014/07/02 PHP
PHP之密码加密的几种方式
2015/07/29 PHP
php的api数据接口书写实例(推荐)
2016/09/22 PHP
PHP实现腾讯与百度坐标转换
2017/08/05 PHP
基于PHP实现短信验证码发送次数限制
2020/07/11 PHP
JS option location 页面跳转实现代码
2008/12/27 Javascript
js正则表达式的使用详解
2013/07/09 Javascript
JavaScript实现页面跳转的几种常用方式
2015/11/28 Javascript
关于vue.extend和vue.component的区别浅析
2017/08/16 Javascript
bootstrap Table服务端处理分页(后台是.net)
2017/10/19 Javascript
React-intl 实现多语言的示例代码
2017/11/03 Javascript
JS实现提交表单前的数字及邮箱校检功能
2017/11/13 Javascript
nodejs中函数的调用实例详解
2018/10/31 NodeJs
vue组件间的参数传递实例详解
2019/04/26 Javascript
详解Vue-cli3.X使用px2rem遇到的问题
2019/08/09 Javascript
layer.open弹层查看缩略图的原图,自适应大小的实例
2019/09/05 Javascript
关于JS解构的5种有趣用法
2019/09/05 Javascript
layui table 表格模板按钮的实例代码
2019/09/21 Javascript
解决vue项目,npm run build后,报路径错的问题
2020/08/13 Javascript
vue 使用微信jssdk,调用微信相册上传图片功能
2020/11/13 Javascript
Python中的lstrip()方法使用简介
2015/05/19 Python
Python三级菜单的实例
2017/09/13 Python
关于Python如何避免循环导入问题详解
2017/09/14 Python
Python实现的计算马氏距离算法示例
2018/04/03 Python
python itchat给指定联系人发消息的方法
2019/06/11 Python
Keras 利用sklearn的ROC-AUC建立评价函数详解
2020/06/15 Python
通过Python实现Payload分离免杀过程详解
2020/07/13 Python
python使用bs4爬取boss直聘静态页面
2020/10/10 Python
澳洲CFL商城:CHEMIST FOR LESS(中文)
2021/02/28 全球购物
中餐厅经理岗位职责
2014/04/11 职场文书
编写python程序的90条建议
2021/04/14 Python
pytorch 一行代码查看网络参数总量的实现
2021/05/12 Python
TV动画《间谍过家家》公开PV
2022/03/20 日漫
详解NumPy中的线性关系与数据修剪压缩
2022/05/25 Python