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面向对象全攻略 (十) final static const关键字的使用
Sep 30 PHP
PHP和Mysqlweb应用开发核心技术-第1部分 Php基础-2 php语言介绍
Jul 03 PHP
基于php设计模式中单例模式的应用分析
May 15 PHP
php curl 上传文件代码实例
Apr 27 PHP
PHP实现批量上传单个文件
Dec 29 PHP
PHP快速生成各种信息提示框的方法
Feb 03 PHP
ThinkPHP使用Smarty第三方插件方法小结
Mar 19 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
Apr 22 PHP
php集成动态口令认证
Jul 21 PHP
php源码 fsockopen获取网页内容实例详解
Sep 24 PHP
PHP HTTP 认证实例详解
Nov 03 PHP
PHP给前端返回一个JSON对象的实例讲解
May 31 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
风格模板初级不完全修改教程
2006/10/09 PHP
用PHP调用Oracle存储过程的方法
2008/09/12 PHP
PHP生成随机字符串实例代码(字母+数字)
2019/09/11 PHP
今天是星期几的4种JS代码写法
2013/09/17 Javascript
通过复制Table生成word和excel的javascript代码
2014/01/20 Javascript
js字符串日期yyyy-MM-dd转化为date示例代码
2014/03/06 Javascript
AngularJS入门教程之服务(Service)
2016/07/27 Javascript
js实现添加可信站点、修改activex安全设置,禁用弹出窗口阻止程序
2016/08/17 Javascript
浅谈事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流
2017/07/22 jQuery
详解如何使用 vue-cli 开发多页应用
2017/12/16 Javascript
js点击时关闭该范围下拉菜单之外的菜单方法
2018/01/11 Javascript
详解JSON Web Token 入门教程
2018/07/30 Javascript
JavaScript 高性能数组去重的方法
2018/09/20 Javascript
js布局实现单选按钮控件
2020/01/17 Javascript
详解微信小程序动画Animation执行过程
2020/09/23 Javascript
[00:48]完美“圣”典2016风云人物:xiao8宣传片
2016/11/30 DOTA
[03:59]5分钟带你了解什么是DOTA2(第二期)
2017/02/07 DOTA
基于Python和Scikit-Learn的机器学习探索
2017/10/16 Python
Python跨文件全局变量的实现方法示例
2017/12/10 Python
Python编写一个优美的下载器
2018/04/15 Python
django1.11.1 models 数据库同步方法
2018/05/30 Python
利用Python半自动化生成Nessus报告的方法
2019/03/19 Python
使用Python制作简单的小程序IP查看器功能
2019/04/16 Python
Python配置虚拟环境图文步骤
2019/05/20 Python
python实现基于朴素贝叶斯的垃圾分类算法
2019/07/09 Python
Python二元算术运算常用方法解析
2020/09/15 Python
HTML5之HTML元素扩展(下)—增强的Form表单元素值得关注
2013/01/31 HTML / CSS
Linux Interview Questions For software testers
2012/06/02 面试题
北京振戎融通Java面试题
2015/09/03 面试题
办公文员的工作岗位职责
2013/11/12 职场文书
施工人员岗位职责
2013/12/12 职场文书
4s店机修工岗位职责
2013/12/20 职场文书
预备党员思想汇报范文
2014/01/11 职场文书
学生逃课检讨书
2015/02/17 职场文书
python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析
2021/04/14 Python
使用@Value值注入及配置文件组件扫描
2021/07/09 Java/Android