理論基礎:
在結點中設兩個引用域,一個保存直接前驅結點的地址,叫prev,一個直接後繼結點的地址,叫next,這樣的鏈表就是雙向鏈表(Doubly Linked List)。
雙向鏈表的結點結構示意圖如上,雙向鏈表結點的定義與單鏈表的結點的定義很相似,因此,雙向鏈表節點類的實現可以參考單鏈表的節點類。
C#實現:
1接口
引用線性表的接口IListDS<T>
2實現
(1)雙向鏈表節點類,參考單鏈表的節點類
Code
[copy to clipboard]
CODE:
1 public class DBNode<T>
2 {
3 private T data; //數據域
4 private DBNode<T> next; //後繼
5 private DBNode<T> prev; //前驅
6 public T Data
7 {
8 get { return data; }
9 set { data = value; }
10 }
11 public DBNode<T> Next
12 {
13 get { return next; }
14 set { next = value; }
15 }
16 public DBNode<T> Prev
17 {
18 get { return prev; }
19 set { prev = value; }
20 }
21 public DBNode()
22 {
23 data = default(T);
24 prev = null;
25 next = null;
26 }
27 public DBNode(T val)
28 {
29 data = val;
30 next = null;
31 prev = null;
32 }
33 }