视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
数据结构线性表代码
2020-11-27 14:18:20 责编:小采
文档


数据结构线性表代码

线性表是n个数据特性相同的元素的组成有限序列,是最基本且常用的一种线性结构(线性表,栈,队列,串和数组都是线性结构),同时也是其他数据结构的基础。

对于非空的线性表或者线性结构的特点:

(1)存在唯一的一个被称作“第一个”的数据元素;

(2)存在唯一的一个被称作“最后一个”的数据元素;

(3)除第一个外,结构中的每个数据元素均只有一个前驱;

(4)除最后一个外,结构中的每个数据元素均只有一个后继;

线性表结构顺序表示(顺序表)

概念:用一组地址连续的存储单元依次存储线性表的数据元素,这种存储结构的线性表称为顺序表。

特点:逻辑上相邻的数据元素,物理次序也是相邻的。

只要确定好了存储线性表的起始位置,线性表中任一数据元素都可以随机存取,所以线性表的顺序存储结构是一种随机存取的储存结构,因为高级语言中的数组类型也是有随机存取的特性,所以通常我们都使用数组来描述数据结构中的顺序储存结构,用动态分配的一维数组表示线性表。

下面是用php来实现数据结构线性表(顺序表)的代码:

<?php
class ArrayList{
 private $list;
 private $size;
 public function __construct()
 {
 $this->list=array();
 $this->size=0;
 }
 //初始化链表
 public function InitList(){
 $this->list=array();
 $this->size=0;
 }
 //删除链表
 public function destoryList(){
 if (isset($this->list)){
 unset($this->list);
 $this->size=0;
 }
 }
 //清空链表
 public function clearList(){
 if (isset($this->list)){
 unset($this->list);
 }
 $this->list=array();
 $this->size=0;
 }
 //判断链表是否为空
 public function emptyList(){
 if (isset($this->list)){
 if ($this->size==0){
 return true;
 }else{
 return false;
 }
 }
 }
 //链表长度
 public function lengthList(){
 if (isset($this->list)){
 return $this->size;
 }else{
 return false;
 }
 }
 //取元素
 public function getElem($i){
 if ($i<1||$i>$this->size){
 die('failed');
 }
 if (isset($this->list)&&is_array($this->list)){
 return $this->list[$i-1];
 }
 }
 //是否在链表中
 public function locateElem($e){
 if (isset($this->list)&&is_array($this->list)){
 for ($i=0;$i<$this->size;$i++){
 if ($this->list[$i]==$e){
 return $i+1;
 }
 return 0;
 }
 }
 }
 //前驱
 public function priorElem($i){
 if ($i<1||$i>$this->size){
 die('failed');
 }
 if ($i==1){
 die('no prior');
 }
 if (isset($this->list)&&is_array($this->list)){
 return $this->list[$i-2];
 }
 }
 //后继
 public function nextElem($i){
 if ($i<1||$i>$this->size){
 die('failed');
 }
 if ($i==$this->size){
 die('no next');
 }
 if (isset($this->list)&&is_array($this->list)){
 return $this->list[$i];
 }
 }
 //插入元素
 public function insertList($i,$e){
 if ($i<1||$i>$this->size){
 die('failed');
 }
 if (isset($this->list)&&is_array($this->list)){
 if ($this->size==0){
 $this->list[0]=$e;
 $this->size++;
 }else{
 for($j=$this->size-1;$j>=$i;$j--){
 $this->list[$j]=$this->list[$j-1];
 }
 $this->list[$i-1]=$e;
 $this->size++;
 }
 }
 }
 //删除元素
 public function deleteList($i){
 if ($i<1||$i>$this->size){
 die('failed');
 }
 if (isset($this->list)&&is_array($this->list)){
 if ($i==$this->size){
 unset($this->list[$i-1]);
 }else{
 unset($this->list[$i-1]);
 for ($j=$i;$j<$this->size;$j++){
 $this->list[$j-1]=$this->list[$j];
 }
 }
 $this->size--;
 }
 }
 //遍历
 public function printList(){
 if (isset($this->list)&&is_array($this->list)){
 foreach ($this->list as $value) {
 echo $value.' ';
 }
 }
 }
}

更多PHP相关知识,请访问PHP中文网!

下载本文
显示全文
专题