好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

数据结构线性表代码

数据结构线性表代码

线性表是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中文网!

以上就是数据结构线性表代码的详细内容,更多请关注Gxl网其它相关文章!

查看更多关于数据结构线性表代码的详细内容...

  阅读:38次