表示双向链表

时间:2010-07-19 03:54:46

标签: algorithm data-structures linked-list

如何表示双向(双向)链表?

3 个答案:

答案 0 :(得分:4)

这是一个链接列表,其中每个节点都有对下一个和上一个节点的引用。

http://en.wikipedia.org/wiki/Doubly-linked_list

答案 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; } }

}

等等......

相关问题