使用队列实现链表: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.