使用队列实现链表:Python
Implementing a linked list using Queues: Python
我正在尝试使用链表实现队列。它主要工作但是我认为我的 is_empty
函数有问题,因为当我 运行 代码并尝试在队列中没有任何内容时出队,它应该说 IndexError("Can't dequeue from empty queue.")
但是我的测试告诉我它什么也没返回
测试:
Failed example:
result = q.dequeue()
Expected:
Traceback (most recent call last):
...
IndexError: Can't dequeue from empty queue.
Got nothing
出列和is_empty函数的代码:
def dequeue(self):
if self.is_empty():
return IndexError("Can't dequeue from empty queue.")
else:
to_return = self.head.item
self.head = self.head.next_node
return to_return
def is_empty(self):
""" returns True if the queue is empty """
return self.head is None
如果您希望抛出错误,请使用 raise 语句而不是 return
示例代码如下:
class Queue():
def __init__(self):
self.head = None
def dequeue(self):
if self.is_empty():
raise IndexError("Can't dequeue from empty queue.")
else:
to_return = self.head.item
self.head = self.head.next_node
return to_return
def is_empty(self):
""" returns True if the queue is empty """
return self.head is None
queue = Queue()
item = queue.dequeue()
print(item)
输出:
Traceback (most recent call last):
File "test2.py", line 20, in <module>
item = queue.dequeue()
File "test2.py", line 8, in dequeue
raise IndexError("Can't dequeue from empty queue.")
IndexError: Can't dequeue from empty queue.
我正在尝试使用链表实现队列。它主要工作但是我认为我的 is_empty
函数有问题,因为当我 运行 代码并尝试在队列中没有任何内容时出队,它应该说 IndexError("Can't dequeue from empty queue.")
但是我的测试告诉我它什么也没返回
测试:
Failed example:
result = q.dequeue()
Expected:
Traceback (most recent call last):
...
IndexError: Can't dequeue from empty queue.
Got nothing
出列和is_empty函数的代码:
def dequeue(self):
if self.is_empty():
return IndexError("Can't dequeue from empty queue.")
else:
to_return = self.head.item
self.head = self.head.next_node
return to_return
def is_empty(self):
""" returns True if the queue is empty """
return self.head is None
如果您希望抛出错误,请使用 raise 语句而不是 return
示例代码如下:
class Queue():
def __init__(self):
self.head = None
def dequeue(self):
if self.is_empty():
raise IndexError("Can't dequeue from empty queue.")
else:
to_return = self.head.item
self.head = self.head.next_node
return to_return
def is_empty(self):
""" returns True if the queue is empty """
return self.head is None
queue = Queue()
item = queue.dequeue()
print(item)
输出:
Traceback (most recent call last):
File "test2.py", line 20, in <module>
item = queue.dequeue()
File "test2.py", line 8, in dequeue
raise IndexError("Can't dequeue from empty queue.")
IndexError: Can't dequeue from empty queue.