php連結串列
<?php
class Node{//節點類
public $next;
public $value;
public function __construct($node)
{
$this->value = $node;
}
}
class Link{//連結串列類
public $head = null;
public function __construct($node)
{
if ($node instanceof Node){
$this->head = $node;
}
}
public function addNode($node){//尾插法
$cur = $this->head;
while($cur->next!=null){
$cur = $cur->next;
}
$cur->next = $node;
}
public function linkList(){
$cur = $this->head;
while($cur!=null){
echo $cur->value."<br>";
$cur = $cur->next;
}
}
}
$head = new Node(1);
$link = new Link($head);
$link->addNode(new Node(2));
$link->addNode(new Node(3));
$link->addNode(new Node(4));
$link->addNode(new Node(5));
$newLink = reverse($link);
$newLink->linkList();
function reverse($link){//單連結串列逆序
$pre = $link->head;
$cur = $pre->next;
$next= null;
while($cur!=null){
$next = $cur->next;
$cur->next = $pre;
$pre = $cur;
$cur = $next;
}
$link->head->next = null;//這裡注意,下面好像已經重新賦值,這句話沒意義???類的物件這種重新賦值,類似於指標
$link->head = $pre;//這裡的賦值,類似於指標,原來的頭節點其實沒有變化
return $link;
}
相關文章
- 連結串列-雙向連結串列
- 連結串列-迴圈連結串列
- 連結串列面試題(二)---連結串列逆序(連結串列反轉)面試題
- PHP 使用連結串列實現對映PHP
- 連結串列4: 迴圈連結串列
- 連結串列-單連結串列實現
- 連結串列入門與插入連結串列
- (連結串列)連結串列的排序問題排序
- php實現基本資料結構之連結串列PHP資料結構
- javascript中的連結串列結構—雙向連結串列JavaScript
- 資料結構之php實現單向連結串列資料結構PHP
- [資料結構]連結串列的實現在PHP中資料結構PHP
- [資料結構] 連結串列的實現在 PHP 中資料結構PHP
- Leetcode_86_分割連結串列_連結串列LeetCode
- 【LeetCode】->連結串列->通向連結串列自由之路LeetCode
- 連結串列操作
- 連結串列逆序
- 2、連結串列
- 實戰PHP資料結構基礎之單連結串列PHP資料結構
- 【圖解連結串列類面試題】移除連結串列元素圖解面試題
- 【圖解連結串列類面試題】環形連結串列圖解面試題
- 連結串列以及golang介入式連結串列的實現Golang
- Linux核心連結串列-通用連結串列的實現Linux
- 資料結構-單連結串列、雙連結串列資料結構
- 反轉連結串列、合併連結串列、樹的子結構
- 資料結構與演算法——連結串列 Linked List(單連結串列、雙向連結串列、單向環形連結串列-Josephu 問題)資料結構演算法
- 【LeetCode-連結串列】面試題-反轉連結串列LeetCode面試題
- 連結串列專題——面試中常見的連結串列問題面試
- LeetCode-Python-86. 分隔連結串列(連結串列)LeetCodePython
- 連結串列面試題(七)---合併兩個有序連結串列面試題
- 資料結構實驗之連結串列九:雙向連結串列資料結構
- 資料結構實驗之連結串列二:逆序建立連結串列資料結構
- 資料結構--陣列、單向連結串列、雙向連結串列資料結構陣列
- 連結串列(python)Python
- 雙向連結串列
- 反轉連結串列
- 構建連結串列
- 劍指offer-從尾到頭列印連結串列-phpPHP