Maison  >  Article  >  développement back-end  >  Exemple d'implémentation simple d'une fonction de liste chaînée circulaire en PHP

Exemple d'implémentation simple d'une fonction de liste chaînée circulaire en PHP

*文
*文original
2017-12-21 16:16:171528parcourir

Cet article présente principalement l'implémentation simple de la fonction de liste chaînée circulaire en PHP. Il décrit brièvement le concept et la fonction de la liste chaînée circulaire et analyse la définition PHP et les compétences opérationnelles associées à l'utilisation de la liste chaînée circulaire sous la forme de exemples. Les amis dans le besoin peuvent s'y référer

Aperçu :

La liste chaînée circulaire est une autre forme de structure de stockage liée. Sa caractéristique est que le champ de pointeur du dernier nœud de la liste pointe vers le nœud principal et que l'ensemble de la liste chaînée forme un anneau.

Comme indiqué ci-dessous :

Exemple dimplémentation simple dune fonction de liste chaînée circulaire en PHP


Code d'implémentation :

<?php
class node{
  public $data;
  public $link;
  public function __construct($data=null,$link=null){
    $this->data=$data;
    $this->link=$link;
  }
}
class cycleLinkList{
  public $head;
  public function __construct($data,$link=null){
    $this->head=new node($data,$link);
    $this->head->link=$this->head;
  }
  public function insertLink($data){
    $p=new node($data);
    $q=$this->head->link;
    $r=$this->head;
    if($q==$r)
    {
      $q->link=$p;
      $p->link=$q;
      return;
    }
    while($q!=$this->head){
      $r=$q;$q=$q->link;
    }
    $r->link=$p;
    $p->link=$this->head;
  }
}
$linklist=new cycleLinkList(1);
for($i=2;$i<11;$i++){
   $linklist->insertLink($i);
}
$q=$linklist->head->link;
echo $linklist->head->data;
while($q!=$linklist->head){
  echo $q->data;
  $q=$q->link;
}
echo "<br>--------------------------<br>";
$p=$linklist->head;
$r=$p;
$n=10;
$i=2;
while($n)
{
    while(0!=$i){
    $r=$p;$p=$p->link;
    $i--;
    }
    echo $p->data;
    $r->link=$p->link;
    $tmp=$p;
    $p=$p->link;
    unset($tmp);
    $n--;
    $i=2;
}


Résultat d'exécution :

12345678910
--------------------------
36927185104

>


Comment générer des images floues en PHP

Explication détaillée de la façon d'implémenter la technologie socket push en PHP

Comment réaliser une conversion de cas en PHP ?

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!

Déclaration:
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