>  기사  >  백엔드 개발  >  데이터 구조 선형 테이블 코드

데이터 구조 선형 테이블 코드

angryTom
angryTom원래의
2019-11-01 09:19:304457검색

데이터 구조 선형 테이블 코드

데이터 구조 선형 테이블 코드

선형 테이블은 동일한 데이터 특성을 갖는 n개의 요소로 구성된 유한 시퀀스입니다. 가장 기본적이고 일반적으로 사용되는 선형 구조(선형 테이블, 스택, 큐, 문자열)입니다. 배열은 선형 구조입니다.) 또한 다른 데이터 구조의 기초이기도 합니다.

비어 있지 않은 선형 테이블 또는 선형 구조의 특징:

(1) "첫 번째"라는 데이터 요소가 하나만 있습니다.

(2) "마지막" 데이터 요소라는 데이터 요소가 하나만 있습니다.

(3) 첫 번째 항목을 제외하고 구조의 각 데이터 요소에는 하나의 선행 항목만 있습니다.

(4) 마지막 항목을 제외하고 구조의 각 데이터 요소에는 하나의 후속 항목만 있습니다. 선형 테이블 구조(순차 테이블)

개념: 연속된 주소를 가진 저장 단위 집합은 선형 테이블의 데이터 요소를 순서대로 저장하는 데 사용됩니다. 이 저장 구조의 선형 테이블을 순차 테이블이라고 합니다.

특징: 논리적으로 인접한 데이터 요소는 물리적 순서로도 인접합니다.

선형 테이블의 시작 위치가 결정되는 한 선형 테이블의 모든 데이터 요소에 무작위로 액세스할 수 있으므로 선형 테이블의 순차 저장 구조는 고급 언어의 배열이기 때문에 무작위 액세스 저장 구조입니다. 유형에도 임의 액세스 특성이 있으므로 일반적으로 배열을 사용하여 데이터 구조의 순차적 저장 구조를 설명하고 동적으로 할당된 1차원 배열을 사용하여 선형 테이블을 나타냅니다.

다음은 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(&#39;failed&#39;);
        }
        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(&#39;failed&#39;);
        }
        if ($i==1){
            die(&#39;no prior&#39;);
        }
        if (isset($this->list)&&is_array($this->list)){
            return $this->list[$i-2];
        }
    }
    //后继
    public function nextElem($i){
        if ($i<1||$i>$this->size){
            die(&#39;failed&#39;);
        }
        if ($i==$this->size){
            die(&#39;no next&#39;);
        }
        if (isset($this->list)&&is_array($this->list)){
            return $this->list[$i];
        }
    }
    //插入元素
    public function insertList($i,$e){
        if ($i<1||$i>$this->size){
            die(&#39;failed&#39;);
        }
        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(&#39;failed&#39;);
        }
        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.&#39; &#39;;
            }
        }
    }
}

PHP 관련 더 많은 지식을 보려면

PHP 중국어 웹사이트

를 방문하세요!

위 내용은 데이터 구조 선형 테이블 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.