ホームページ  >  記事  >  バックエンド開発  >  PHPは循環リンクリスト関数を実装します

PHPは循環リンクリスト関数を実装します

墨辰丷
墨辰丷オリジナル
2018-05-17 13:43:501721ブラウズ

この記事では、主に PHP での循環リンク リスト関数の簡単な実装を紹介し、循環リンク リストの概念と機能を簡単に説明し、例の形で循環リンク リストを使用するための PHP 定義と関連する操作スキルを分析します。困っている友達は参考にしてください

詳細は次のとおりです:

概要:

循環リンク リストは、リンク ストレージ構造の別の形式です。その特徴は、リストの最後のノードのポインタ フィールドが先頭のノードを指しており、リンクされたリスト全体がリングを形成していることです。

以下の図に示すように:

実装コード:

<?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;
}
?>

実行結果:

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

関連する推奨事項:

JavaScript データ構造単体リンクリスト 循環リンクリストの例と共有

PHPでの循環リンクリスト関数の簡単な実装例

JavaScriptの二重リンクリストと二重リンクリストの実装

以上がPHPは循環リンクリスト関数を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。