<?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 顺序线性表的更多相关文章

  1. 顺序线性表之大整数求和C++

    顺序线性表之大整数求和 大整数求和伪代码 1.初始化进位标志 flag=0: 2.求大整数 A 和 B 的长度: int aLength = a.GetLength(); int bLength = ...

  2. 顺序线性表 ---- ArrayList 源码解析及实现原理分析

    原创播客,如需转载请注明出处.原文地址:http://www.cnblogs.com/crawl/p/7738888.html ------------------------------------ ...

  3. 线性表&顺序线性表

    第二章 线性表 参考文献:[数据结构(C语言版)].严蔚敏 本篇章仅为个人学习数据结构的笔记,不做任何用途. 2.1 线性结构的特点 (1). 存在唯一的一个被称为"第一个"的数据 ...

  4. 顺序线性表之大整数求和C++实现

    顺序线性表之大整数求和 大整数求和伪代码 1.初始化进位标志 flag=0: 2.求大整数 A 和 B 的长度: int aLength = a.GetLength(); int bLength = ...

  5. C语言数据结构-顺序线性表的实现-初始化、销毁、长度、查找、前驱、后继、插入、删除、显示操作

    1.数据结构-顺序线性表的实现-C语言 #define MAXSIZE 100 //结构体定义 typedef struct { int *elem; //基地址 int length; //结构体当 ...

  6. 动态分配的顺序线性表的十五种操作—C语言实现

    线性表 定义:是最常用的,也是最简单的数据结构,是长度为n个数据元素的有序的序列. 含有大量记录的线性表叫文件 记录:稍微复杂的线性表里,数据元素为若干个数据项组成,这时把一个数据元素叫记录 结构特点 ...

  7. 数据结构 - 静态顺序线性表的实行(C语言)

    数据结构 - 静态顺序线性表的实行(C语言) 1 获取元素操作 对于线性表的顺序存储结构来说,如果我们要实现GetElem操作,即将线性表L中的第i个位置元素值返回,其实是非常简单的. 只要i的数值在 ...

  8. 数据结构算法C语言实现(一)---2.2线性表的顺序表示和实现

    注意: 虽然是用C语言实现,但是考虑到使用了一个C++的特性----引用以简化代码,所以所有的代码均以cpp作为后缀,用g++编译(以后不做说明). g++版本: 一.简述 本节主要讲述线性表的顺序实 ...

  9. 线性表之顺序表C++实现

    线性表之顺序表 一.头文件:SeqList.h //顺序线性表的头文件 #include<iostream> ; //定义顺序表SeqList的模板类 template<class ...

随机推荐

  1. 部署和调优 2.4 tomcat安装

    下载tamcet 官网 http://tomcat.apache.org/ 左侧选择版本 复制下载链接 切换到下载目录 cd /usr/local/src linux wget wget http:/ ...

  2. dubbo-Instantiation of bean failed; nested exception is java.lang.ExceptionInInitializerError

    dubbo-2.8.4需用jdk版本为1.8,dubbo-2.5.3可以使用1.7版本的jdk.

  3. python爬虫(8)--Xpath语法与lxml库

    1.XPath语法 XPath 是一门在 XML 文档中查找信息的语言.XPath 可用来在 XML 文档中对元素和属性进行遍历.XPath 是 W3C XSLT 标准的主要元素,并且 XQuery ...

  4. spring 的aop操作

  5. IE6中浮动双边距bug

    想要创建出漂亮的网页设计, 除了要认真学习每一个html和CSS代码之外,不可能不去了解一下臭名昭著的IE6和更早的那些IE浏览器的坏脾气,因为你本来写出的规规矩矩的代码, 漂亮的设计就此就要完成了, ...

  6. JAVA中的垃圾回收机制以及其在android开发中的作用

    http://blog.csdn.net/xieqibao/article/details/6707519 这篇文章概述了JAVA中运行时数据的结构,以及垃圾回收机制的作用.在后半部分,描述了如何检测 ...

  7. extends与implements

    implements一般是实现接口. extends 是继承类. 接口一般是只有方法声明没有定义的, 那么java特别指出实现接口是有道理的,因为继承就有感觉是父类已经实现了方法,而接口恰恰是没有实现 ...

  8. 标签控件JLabel的使用

    ---------------siwuxie095                             工程名:TestUI 包名:com.siwuxie095.ui 类名:TestLabel.j ...

  9. Linux kdb命令

    一.简介 Linux 内核调试器(KDB)允许您调试 Linux 内核.这个恰如其名的工具实质上是内核代码的补丁,它允许高手访问内核内存和数据结构.KDB 的主要优点之一就是它不需要用另一台机器进行调 ...

  10. p2234&bzoj1588 营业额统计

    传送门 题目 营业额统计 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额 ...