【发布时间】:2019-07-24 19:06:29
【问题描述】:
此队列代码必须返回列表的确切头部、尾部和大小。它返回正确的头部和尾部,但大小不正确。
class Queue:
'''
>>> x=Queue()
>>> x.isEmpty()
True
>>> x.dequeue()
'Queue is empty'
>>> x.enqueue(1)
>>> x.enqueue(2)
>>> x.enqueue(3)
>>> x.dequeue()
1
>>> print(x)
Head:Node(2)
Tail:Node(3)
Queue:2 3
'''
def __init__(self):
# You can add a count variable
self.head=None
self.tail=None
def __str__(self):
temp=self.head
out=[]
while temp:
out.append(str(temp.value))
temp=temp.next
out=' '.join(out)
return ('Head:{}\nTail:{}\nQueue:{}'.format(self.head,self.tail,out))
__repr__=__str__
def isEmpty(self):
#write your code here
if self.head == None:
return True
else:
return False
def __len__(self):
#write your code here
node_count = 1
current_node = self.head
while current_node != None:
current_node = current_node.next
node_count += 1
return node_count
else:
return node_count
def enqueue(self, value):
#write your code here
new_node = Node(value)
if self.isEmpty():
self.head = new_node
self.tail = new_node
else:
self.tail.next = new_node
self.tail = new_node
def dequeue(self):
#write your code here
if self.isEmpty():
return 'Queue is empty'
else:
old_top_node = self.head
new_top_node = self.head.next
self.head = new_top_node
return old_top_node.value
预期:[12,8,11,5],head=12,tail=5 和 size 4
实际输出:[12, 8, 11, 5], head=12, tail=5 and size 2
【问题讨论】:
-
你做了什么调试?你把问题缩小到了哪里?不过,从 1 开始
node_count似乎是错误的。