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 相关文章推荐
不用数据库的多用户文件自由上传投票系统(2)
Oct 09 PHP
解析php入库和出库
Jun 25 PHP
PHP设置图片文件上传大小的具体实现方法
Oct 11 PHP
采用memcache在web集群中实现session的同步会话
Jul 05 PHP
PHP微信红包API接口
Dec 05 PHP
Yii2前后台分离及migrate使用(七)
May 04 PHP
php flush无效,IIS7下php实时输出的方法
Aug 25 PHP
php批量删除操作代码分享
Feb 26 PHP
Yii2下点击验证码的切换实例代码
Mar 14 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
Sep 22 PHP
Laravel中的chunk组块结果集处理与注意问题
Aug 15 PHP
laravel 错误处理,接口错误返回json代码
Oct 25 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
兼容firefox,chrome的网页灰度效果
2011/08/08 PHP
使用openssl实现rsa非对称加密算法示例
2014/01/24 PHP
php代码审计比较有意思的例子
2014/05/07 PHP
几个比较实用的JavaScript 测试及效验工具
2010/04/18 Javascript
javascript动画之圆形运动,环绕鼠标运动作小球
2010/07/20 Javascript
多选列表框动态添加,移动,删除,全选等操作的简单实例
2014/01/13 Javascript
js实现ifram取父窗口URL地址的方法
2015/02/09 Javascript
原生JS实现响应式瀑布流布局
2015/04/02 Javascript
简介JavaScript中的unshift()方法的使用
2015/06/09 Javascript
深入解读JavaScript中的Iterator和for-of循环
2015/07/28 Javascript
javascript中apply、call和bind的使用区别
2016/04/05 Javascript
Bootstrap弹出框(Popover)被挤压的问题小结
2017/07/11 Javascript
react router 4.0以上的路由应用详解
2017/09/21 Javascript
JS实现登录页密码的显示和隐藏功能
2017/12/06 Javascript
vue、react等单页面项目应该这样子部署到服务器
2018/01/03 Javascript
用npm-run实现自动化任务的方法示例
2019/01/14 Javascript
Vue中遍历数组的新方法实例详解
2019/07/21 Javascript
layui 实现表单和文件上传一起传到后台的例子
2019/09/16 Javascript
vue微信分享插件使用方法详解
2020/02/18 Javascript
JavaScript 声明私有变量的两种方式
2021/02/05 Javascript
python实现矩阵乘法的方法
2015/06/28 Python
python转换字符串为摩尔斯电码的方法
2015/07/06 Python
简单谈谈Python中函数的可变参数
2016/09/02 Python
详解Python开发中如何使用Hook技巧
2017/11/01 Python
Flask框架模板渲染操作简单示例
2019/07/31 Python
基于Python生成个性二维码过程详解
2020/03/05 Python
python3 实现口罩抽签的功能
2020/03/11 Python
html5 CSS过度-webkit-transition使用介绍
2013/07/02 HTML / CSS
高清屏中使用Canvas绘图出现模糊的问题及解决方法
2019/06/03 HTML / CSS
名企HR怎样看待求职信
2014/02/23 职场文书
常务副总经理岗位职责
2014/04/12 职场文书
艺人经纪人岗位职责
2014/04/15 职场文书
党员活动日总结
2014/05/05 职场文书
过程装备与控制工程专业求职信
2014/07/02 职场文书
学习普通话的体会
2014/11/07 职场文书
MySQL系列之十五 MySQL常用配置和性能压力测试
2021/07/02 MySQL