双链表的每个节点有两个指针:一个指向后一个节点,另一个指向前一个节点。结构比单链表略复杂,但使用上更方便。

代码示例

class Node():
    def __init__(self, item, next=None, prior=None):
        self.item = item
        self.next = next
        self.prior = prior

# 插入操作
p.next = cur_node.next
cur_node.next.prior = p
p.prior = cur_node
cur_node.next = p

# 删除操作
p = cur_node.next
cur_node.next = p.next
p.next.prior = cur_node
del p

对比总结

1、链表在插入和删除的操作上明显快于顺序表;

2、链表的内存可以更灵活的分配;

3、如果用链表实现队列和栈结构,就不需要考虑大小的问题,可以更加灵活;

4、链表这种链式存储的数据机构,对数和图结构有很大的启发作用。

本文为 陈华 原创,欢迎转载,但请注明出处:http://www.ichenhua.cn/read/322