php 线性表,php实现顺序线性表

3c16d51134526096b21bd0c23b37b72b.png

什么是线性顺序表?

线性顺序表是指按照顺序在内存进行存储,除起始和结尾以外都是一一连接的(一般都是用一维数组的形式表现)。

(免费学习视频教程分享:php视频教程)

实例代码如下所示:<?php

/*

* GetElem: 返回线性表中第$index个数据元素

* ListLength: 返回线性表的长度

* LocateElem: 返回给定的数据元素在线性表中的位置

* PriorElem: 返回指定元素的前一个元素

* NextElem: 返回指定元素的后一个元素

* ListInsert: 在第index的位置插入元素elem

* ListDelete: 删除第index位置的元素elem

*/

class Sequence {

public $seqArr;

public $length;

public function __construct($arr) {

$this->seqArr = $arr;

$this->length = count($arr);

}

/*

* 返回线性表中第$index个数据元素

*/

public function GetElem($index) {

if (($this->length) == 0 || $index < 0 || ($index > $this->length)) {

return "Error";

}

return $this->seqArr[$index - 1];

}

/*

* 返回线性表的长度

*

*/

public function ListLength() {

return $this->length;

}

/*

* 返回给定的数据元素在线性表中的位置

*/

public function LocateElem($elem) {

for ($i = 0; $i < ($this->length); $i ) {

if (($this->seqArr[$i]) == $elem) {

return $i 1;

}

}

}

/*

* PriorElem: 返回指定元素的前一个元素

*/

public function PriorElem($elem) {

for ($i = 0; $i < ($this->length); $i ) {

if (($this->seqArr[$i]) == $elem) {

if ($i == 0) {

return "Error (is null) ";

} else {

return $this->seqArr[$i - 1];

}

}

}

}

/*

* NextElem: 返回指定元素的后一个元素

*/

public function NextElem($elem) {

for ($i = 0; $i < ($this->length); $i ) {

if (($this->seqArr[$i]) == $elem) {

return $this->seqArr[$i 1];

}

}

}

/*

* ListInsert: 在第index的位置插入元素elem

*/

public function ListInsert($index, $elem) {

if (($this->length) == 0 || $index < 0 || $index > ($this->length)) {

return "Error";

}

for ($i = $index; $i < ($this->length); $i ) {

$this->seqArr[$i 1] = $this->seqArr[$i];

}

$this->seqArr[$index] = $elem;

$this->length = $this->length 1;

return $this->seqArr;

}

/*

* ListDelete: 删除第index位置的元素

*/

public function ListDelete($index) {

if (($this->length) == 0 || $index < 0 || $index > ($this->length - 1)) {

return "Error";

}

unset($this->seqArr[$index]);

$this->length--;

return $this->seqArr;

}

}

?>

相关文章教程分享:php教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值