第一部分:双链表
一.双链表的定义及本质
1.每个节点有两个链接:一个指向前一个节点,当此节点为第一个节点时,指向空值;而另一个指向下一个节点,当此节点为最后一个节点时,指向空值。
2.代码实现:
class Node(object):
'''结点定义'''
def __init__(self,item):
# item存放数据元素,next是下一结点的标识
self.item = item
self.next = None
self.prev = None
class DoubleLinkList(object):
'''双链表定义'''
def __init__(self,node=None):
# _开头标识私有属性
self._head = node
def is_empty(self):
# 判断链表是否为空
return self._head == None
def length(self):
# 链表长度,cur初始指向头结点
count = 0
cur = self._head
while cur!= None:
count += 1
cur = cur.<