•   欢迎来到21NN网.
  •   请记住本站网址www.21nn.cn

数据结构线性表代码【php问题】,数据结构,线性表

摘要: 数据构造线性表代码线性表是n个数据特征雷同的元素的构成有限序列,是最基本且经常运用的一种线性构造(线性表,栈,行列,串和数组都是线性构造),同时也是其他数据构造的基本。关于非空的线性表或许...

数据构造线性表代码

线性表是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相干学问,请接见ki4网!

以上就是数据构造线性表代码的细致内容,更多请关注ki4网别的相干文章!

分享到:

发表评论

评论列表

还没有评论,快来说点什么吧~

公众号二维码

微信公众号