这是我的双链表deque python代码的一部分.
编写的"appendleft"函数几乎与"append"函数类似,通常是输出.为什么最后一个"append('apple')"代码不能在"Group_of_append"函数中正常输出?
class Node:
def __init__(self,item,prev,next):
self.item = item
self.prev = prev
self.next = next
class deque:
def __init__(self,name):
self.name = name
self.head = Node(None,None,None)
self.tail = Node(None,self.head,None)
self.head.next = self.tail
self.size = 0
def append(self,item):
current = self.head
new_node = Node(item,None,None)
while current.next != None:
current = current.next
current.next = new_node
new_node.prev = current
self.tail = new_node
self.size += 1
return
def appendleft(self,item):
current = self.tail
new_node = Node(item,None,None)
while current.prev != None:
current = current.prev
current.prev = new_node
new_node.next = current
self.head = new_node
self.size += 1
return
def print_list(self):
p = self.head
while p.next != None:
if p.item == None:
pass
else:
print(p.item,end=' ')
p = p.next
def Group_of_append(self):
print('Group_of_append')
self.append('graphe')
self.append('cherry')
self.append('apple')
self.appendleft('watermelon')
self.appendleft('strawberry')
self.print_list()
print(" ")
deq = deque('name')
deq.Group_of_append()
结果是
strawberry watermelon graphe cherry
_append的组_上的最后一个append代码是self.append('apple')无效.
在定义"append"函数时,我认为由于多了一个大小不够,所以不会有输出.
所以,我改变了deque上的'append'函数,如下所示
def append(self,item):
self.size += 1
current = self.head
new_node = Node(item,None,None)
while current.next != None:
current = current.next
current.next = new_node
new_node.prev = current
self.tail = new_node
self.size += 1
return
但结果是一样的(仍然是最新的"append"函数不打印任何内容)
strawberry watermelon graphe cherry