数据结构线性表代码-PHP问题

资源魔 42 0

数据构造线性表代码

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

以上就是数据构造线性表代码的具体内容,更多请存眷资源魔其它相干文章!

标签: php教程 线性表 数据结构 php故障解决 php使用问题

抱歉,评论功能暂时关闭!