C#数据结构-双向链表2011-02-13 博客园 Richet理论基础:在结点中设两个引用域,一个保存直接前驱结点的地址,叫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 }