概述:
雙向鍊錶也叫雙鏈表,是鍊錶的一種,它的每個資料結點中都有兩個指標,分別指向直接後繼和直接前驅。所以,從雙向鍊錶中的任意乙個結點開始,都可以很方便地訪問它的前驅結點和後繼結點。一般我們都構造雙向迴圈鍊錶。
實現**:
<?php class node
}class doublelinklist
//插入節點
public function insertlink($data)else
}if($q==null)
} //從頭輸出節點
public function printfromfront()
echo $string."
"; }
//從尾輸出節點
public function printfromend()
$string="";
while($r)
echo $string."
"; }
publ程式設計客棧ic function dellink($data)
else
}if($p==null)
echo "沒有值為的節點";
}}$link=new doublelinklist();
$link->insertlink(1);
$link->insertlink(2);
$link->insertlinkwww.cppcns.com(3);
$link->insertlink(4);
$link->insertlink(5);
$link->dellink(3);
$link->printfromfront();
$link->printfromend();
$link->dellink(6);
執行結果:
1,2,4,5
5,4,2,1,head
沒有值為6的節點
雙鏈表的插入和刪除實現
雙鏈表相對於單鏈表,最大的不同就是在它的插入和刪除操作上。在刪除實現時,要注意尾結點的刪除和普通結點的刪除的區別,需分別對待。以下是我的實現 includeusing namespace std struct node node creat int n return head int show no...
雙鏈表(刪除節點操作)
在雙鏈表中刪除第i個節點演算法如下 首先要會 雙鏈表的儲存結構定義 typedef struct dlinklistdlinklist 思路 假設刪除雙鏈表l中 p 節點 的 後繼節點 我們將用q表示 q p next 1.首先我們還是先查詢 i 1 個節點 2.然後判斷該位置是否為空,是,則返回0...
小試牛刀 單鏈表 雙鏈表插入與刪除
在正文開始之前,先介紹下一些相關的背景知識。首先,什麼是鍊錶?鍊錶的實質是資料結構按照儲存結構方式劃分的一種儲存結構。如下圖1所示,煉表不像順序儲存結構那樣,在記憶體中是一塊連續的區域,相反,鍊錶是 物理離散 邏輯聯絡 即在記憶體中,儲存單元是不連續的 彼此之間沒有順序,但是彼此之間是通過鍊錶中的指...