Maison > développement back-end > Problème PHP > Code de table linéaire de structure de données

Code de table linéaire de structure de données

angryTom
Libérer: 2023-02-28 08:58:01
original
4483 Les gens l'ont consulté

Code de table linéaire de structure de données

Code de table linéaire de structure de données

Une table linéaire est une séquence finie de n éléments avec les mêmes caractéristiques de données . Il s'agit de la structure linéaire la plus basique et la plus couramment utilisée (les listes linéaires, les piles, les files d'attente, les chaînes et les tableaux sont toutes des structures linéaires), et elle constitue également la base d'autres structures de données.

Caractéristiques des tableaux linéaires non vides ou des structures linéaires :

(1) Il n'y a qu'un seul élément de données appelé "le premier"

( 2) Il n'y a qu'un seul élément de données appelé "le premier" ; un élément de données appelé "dernier"

(3) À l'exception du premier, chaque élément de données de la structure n'a qu'un seul prédécesseur

(4) À l'exception du dernier, chaque élément de données dans la structure n'a qu'un seul successeur ;

Représentation séquentielle de structure de table linéaire (table séquentielle)

Concept : utiliser un groupe d'unités de stockage avec des magasins d'adresses consécutives les éléments de données d'un tableau linéaire en séquence. Le tableau linéaire de cette structure de stockage est appelé tableau séquentiel.

Caractéristiques : les éléments de données logiquement adjacents sont également adjacents dans l'ordre physique.

Tant que la position de départ de la table linéaire est déterminée, tout élément de données de la table linéaire peut être accédé de manière aléatoire, de sorte que la structure de stockage séquentielle de la table linéaire est une structure de stockage à accès aléatoire, car le avancé Le type de tableau dans le langage a également des caractéristiques d'accès aléatoire, nous utilisons donc généralement des tableaux pour décrire la structure de stockage séquentielle dans la structure de données et utilisons des tableaux unidimensionnels alloués dynamiquement pour représenter des tableaux linéaires.

Ce qui suit est le code permettant d'utiliser PHP pour implémenter une table linéaire de structure de données (table séquentielle) :

<?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;;
            }
        }
    }
}
Copier après la connexion

Pour plus de connaissances sur PHP, veuillez visiter le Site Web PHP chinois!

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal