php线性表顺序存储实现代码(增删查改)

时间:2023-11-19 06:51:53 


<?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>';
标签:线性表,顺序存储
0
投稿

猜你喜欢

  • js简单实现Select互换数据的方法

    2023-07-20 00:50:46
  • 利用Python实现微信找房机器人实例教程

    2022-12-09 09:12:27
  • kafka-python批量发送数据的实例

    2023-04-24 04:40:23
  • aspjpeg组件安装问题

    2008-09-27 17:52:00
  • python的类class定义及其初始化方式

    2023-08-07 11:52:15
  • Python Matplotlib绘制多子图详解

    2021-01-11 11:27:05
  • 解密ThinkPHP3.1.2版本之独立分组功能应用

    2023-11-20 09:06:02
  • 谈一谈JS消息机制和事件机制的理解

    2024-05-03 15:59:22
  • python实现录音功能(可随时停止录音)

    2023-07-29 05:15:06
  • PyQt QCombobox设置行高的方法

    2021-10-15 19:50:20
  • 如何解决MySQL的客户端不支持鉴定协议

    2008-11-27 17:10:00
  • Mysql数据库从5.6.28版本升到8.0.11版本部署项目时遇到的问题及解决方法

    2024-01-26 03:14:50
  • 新Orcas语言特性-查询句法

    2010-07-16 12:58:00
  • Python实现验证码识别

    2022-01-04 09:51:04
  • Bowman vs Google-设计与数据彼此相互需要

    2009-08-16 16:06:00
  • Golang range slice 与range array 之间的区别

    2024-05-21 10:26:31
  • 网络编程之get与post的区别与联系

    2023-01-01 09:40:37
  • Python列表计数及插入实例

    2023-05-26 23:41:12
  • python版微信跳一跳游戏辅助

    2021-08-16 09:03:19
  • docker-py 用Python调用Docker接口的方法

    2023-04-07 03:15:46
  • asp之家 网络编程 m.aspxhome.com