如何表示双向(双向)链表?
答案 0 :(得分:4)
这是一个链接列表,其中每个节点都有对下一个和上一个节点的引用。
答案 1 :(得分:1)
伪代码:
list-node
{
some-data
pointer-or-reference to prev-list-node
pointer-or-reference to next-list-node
}
这样,您可以:
current-node = beginning
current-node = current-node -> next-list-node
current-node = current-node -> prev-list-node
向前和向后“移动”。语法取决于语言。
答案 2 :(得分:0)
在C#中:
internal class ListNode<T> {
public T Item { get; set; }
public ListNode Prev { get; set; }
public ListNode Next { get; set; }
}
public class List<T> {
public List() { Head = Tail = null; }
public void Add(T item) {
var node = new ListNode<T>(item);
if(IsEmpty)
Head = Tail = node;
else {
node.Prev = Tail;
Tail.Next = node;
Tail = node;
}
}
protected ListNode<T> Head { get; set; }
protected ListNode<T> Tail { get; set; }
public bool IsEmpty { get { return Head == null; } }
}
等等......