ホームページ >バックエンド開発 >PHPチュートリアル >PHPのリンクリストの使用状況の分析例

PHPのリンクリストの使用状況の分析例

WBOY
WBOYオリジナル
2016-07-25 08:44:54767ブラウズ

この記事の例では、PHP リンク リストの使用方法について説明します。皆さんの参考に共有してください。詳細は以下の通りです

ここでは、リンク リスト ノードの作成、走査、更新など、PHP リンク リストの基本的な使用法を簡単に紹介します。

  1. /**
  2. * @author MzXy
  3. * @copyright 2011
  4. * @param PHP リンク リスト
  5. */
  6. /**
  7. *
  8. *ノードクラス
  9. */
  10. class Node
  11. {
  12. private $Data;//ノード データ
  13. private $Next;//次のノード
  14. パブリック関数 setData($value){
  15. $this->Data=$value;
  16. }
  17. パブリック関数 setNext($value){
  18. $this->>Next=$value;
  19. }
  20. パブリック関数 getData( ) {
  21. return $this->Data;
  22. }
  23. public function getNext(){
  24. return $this->Next;
  25. }
  26. public function __construct($data,$next){
  27. $this->setData ( $data);
  28. $this->setNext($next);
  29. }
  30. }//関数クラス
  31. class LinkList
  32. {
  33. private $header;//ヘッダーノード
  34. private $size;//Length
  35. public function getSize (){
  36. $i=0;
  37. $node=$this->header;
  38. while($node->getNext()!=null)
  39. { $i++;
  40. $node=$node-> getNext; ();
  41. }
  42. return $i;
  43. }
  44. public function setHeader($value){
  45. $this->header=$value;
  46. }
  47. public function getHeader(){
  48. return $this->header ;
  49. }
  50. public function __construct(){
  51. header("content-type:text/html; charset=utf-8");
  52. $this->setHeader(new Node(null,null));
  53. }
  54. / **
  55. *@author MzXy
  56. *@param $data -- 追加するノードのデータ
  57. *
  58. */
  59. public function add($data)
  60. {
  61. $node=$this->header;
  62. while($node->getNext()!=null)
  63. {
  64. $node= $ node->getNext();
  65. }
  66. $node->setNext(new Node($data,null));
  67. }
  68. /**
  69. *@author MzXy
  70. *@param $data -- 削除するノードのデータ
  71. *
  72. */
  73. public function RemoveAt($data)
  74. {
  75. $node=$this->header;
  76. while($node->getData()!=$data)
  77. {
  78. $node=$node->getNext();
  79. }
  80. $node-> setNext; ($node->getNext());
  81. $node->setData($node->getNext()->getData());
  82. }
  83. /**
  84. *@author MzXy
  85. *@param traverse
  86. *
  87. */
  88. public function get ()
  89. {
  90. $node=$this->header;
  91. if($node->getNext()==null){
  92. print("データ セットは空です!");
  93. return;
  94. }
  95. while($node->getNext()!=null)
  96. {
  97. print($node->getNext()->getData());
  98. if($node->getNext()->getNext ()==null){break;}
  99. $node=$node->getNext();
  100. }
  101. }
  102. /**
  103. *@author MzXy
  104. *@param $data--アクセスされるノードのデータ
  105. * @param このメソッドはデモンストレーションのみを目的としており、実際的な意味はありません
  106. *
  107. */
  108. public function getAt($data)
  109. {
  110. $node= $this->header->getNext();
  111. if($node->getNext()==null){
  112. print("データ セットが空です!");
  113. return;
  114. }
  115. while( $ node->getData()!=$data)
  116. {
  117. if($node->getNext()==null){break;}
  118. $node=$node->getNext();
  119. }
  120. return $node->getData();
  121. }
  122. /**
  123. *@author MzXy
  124. *@param $value-更新する必要があるノードの元のデータ --$initial---更新されたデータ
  125. *
  126. */
  127. public function update($initial,$value)
  128. {
  129. $node=$this->header->getNext() ;
  130. if($node->getNext()==null){
  131. print("データ セットが空です!");
  132. return;
  133. }
  134. while($node->getData()!=$data )
  135. {
  136. if($node->getNext()==null){break;}
  137. $node=$node->getNext();
  138. }
  139. $node->setData($initial); }
  140. }
  141. ?>
コードをコピー
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。

リンクリスト、php

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