用PHP实现单向链表结构
生活随笔
收集整理的這篇文章主要介紹了
用PHP实现单向链表结构
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
鏈表的結構是由一個一個節點組成的,所謂鏈,就是每個節點的頭尾連在一起。而單向鏈表就是:每個節點包含了當前節點的值和下一個節點引用。雙向鏈表就是每個節點包含了當前節點的值和上下兩個節點的引用。相對于數組結構,鏈表的增刪效率會更加高。
單向鏈表(示意圖):
PHP代碼實現
/*** 鏈表結構*/ class Hero{public $no;public $name;public $next=null;public function __construct($no=null,$name=null){$this->no = $no;$this->name = $name;} }/*** 鏈表操作*/ class SingleLink{/*** 添加節點*/public function addNode($head,$node){$insertNode = $head;$afterNode = null; // 插入節點的后續節點while ($insertNode->next!=null){if ($node->no < $insertNode->next->no){$afterNode = $insertNode->next; break;}elseif($node->no == $insertNode->next->no){throw new \Exception('排名 '.$node->no.' 節點已存在!');}$insertNode = $insertNode->next;}if( $afterNode ){ // 將后續節點拼接到當前插入節點的后面$node->next = $afterNode;}$insertNode->next = $node;}/*** 刪除節點*/public function delNode($head,$no){$currentNode = $head;$prevNode = $head;while ($currentNode->next!=null){$currentNode = $currentNode->next;if( $currentNode->no==$no ){$prevNode->next = $currentNode->next;break;}$prevNode = $currentNode;}}/*** 顯示節點*/public function showNode($head){$currentNode = $head;while ($currentNode->next!=null){$currentNode = $currentNode->next;echo '第 '.$currentNode->no.' 名:'.$currentNode->name."<br/>";}} }//創建一個head頭,該head 只是一個頭,不放入數據 $head = new Hero(); $heroList = new SingleLink();$hero_01 = new Hero(1,'宋江'); $hero_02 = new Hero(2,'盧俊義'); $hero_03 = new Hero(3,'公孫勝'); $hero_04 = new Hero(4,'吳用'); $hero_05 = new Hero(5,'關勝'); $hero_06 = new Hero(6,'林沖');$heroList->addNode($head, $hero_01); $heroList->addNode($head, $hero_03); $heroList->addNode($head, $hero_02); $heroList->addNode($head, $hero_05); $heroList->addNode($head, $hero_04); $heroList->addNode($head, $hero_06); //$heroList->addNode($head, $hero_02);$heroList->showNode($head);echo "<br/><br/>"; $heroList->delNode($head,3); $heroList->delNode($head,5); $heroList->showNode($head);參考:
韓順平PHP程序員玩轉算法公開課
https://www.cnblogs.com/Starshot/p/6918569.html
https://blog.csdn.net/silent123go/article/details/52693735
總結
以上是生活随笔為你收集整理的用PHP实现单向链表结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NAT技术的原理
- 下一篇: php程序文件免费加密软件,FileWa