双向链表
双向链表是指节点有三部分,数据、前向指针和后向指针。简单的图示可以参考看图轻松理解数据结构与算法系列(双向链表)
作者:程序员老九
掘金:https://juejin.im/post/5d1365c7e51d4510a73280f6
来源:请关注我的掘金博客
#定义一个节点类
class Node:
def __init__(self,dataval):
self.dataval = dataval
self.rightval = None
self.leftval = None
#定义双向循环链表
class Cri:
#初始值
def __init__(self):
self.headval = None
#添加数据
def two_way_append(self,dataval):
#数值转节点
New_node = Node(dataval)
#判断是否是初始值
if self.headval==None:
self.headval=New_node
else:
laste = self.headval
while laste.rightval:
laste = laste.rightval
laste.rightval = New_node
New_node.leftval = laste
def show_right(self):
printval = self.headval
while printval:
print(printval.dataval)
printval = printval.rightval
def show_left(self):
printval = self.headval
while printval:
if printval.rightval == None:
print(printval.dataval)
break
else:
printval = printval.rightval
print(str(printval.leftval.dataval))
li = Cri()
li.two_way_append('1')
li.two_way_append('2')
li.two_way_append('3')
li.two_way_append('4')
show = li.show_left()
# show_right = li.show_right()