播种器菜鸡1号 2022-10-19 12:31 采纳率: 81.8%
浏览 50
已结题

python链表队列问题

问题遇到的现象和发生背景 python链表
用代码块功能插入代码,请勿粘贴截图
运行结果及报错内容 Traceback (most recent call last):

File "C:\Users\twy\Desktop\experiment3\lab3_2.py", line 51, in
myQueue.dequeue()
File "C:\Users\twy\Desktop\experiment3\lab3_2.py", line 31, in dequeue
assert not self.is_empty()
AssertionError

我的解答思路和尝试过的方法
class Node(object):
    def __init__(self, value=None):
        self.data = value
        self.next = None


class LQueue(object):
    def __init__(self):
        # to note that no header node is defined 
        self.front = None
        self.rear = None
        self.size=0

    def enqueue(self, value):
        # 
        newnode = Node(value)
        if self.is_empty():
            # add an element for empty queue
            self.rear = self.front = newnode
        else:
            self.rear.next=newnode
            self.rear=newnode


    def dequeue(self):
        # 
        assert not self.is_empty()
        result=self.front.data
        self.front=self.front.next
        return result

    def is_empty(self):
        return self.size==0

    def gethead(self):
        # read the front element of queue
        if not self.is_empty():
            self.front=self.front.data


if __name__ == "__main__":
    myQueue = LQueue()
    myQueue.enqueue(6)
    myQueue.enqueue(8)
    print("The top element of current queue is: ", myQueue.gethead())

    myQueue.dequeue()
    print("The top element of current queue is: ", myQueue.gethead())

  • 写回答

4条回答 默认 最新

  • 快乐鹦鹉 2022-10-19 12:45
    关注
    class Node(object):
        def __init__(self, value=None):
            self.data = value
            self.next = None
    
    
    class LQueue(object):
        def __init__(self):
            # to note that no header node is defined
            self.front = None
            self.rear = None
            self.size = 0
    
        def enqueue(self, value):
            #
            newnode = Node(value)
            if self.is_empty():
                # add an element for empty queue
                self.rear = self.front = newnode
            else:
                self.rear.next = newnode
                self.rear = newnode
            self.size = self.size + 1
    
        def dequeue(self):
            #
            assert not self.is_empty()
            result = self.front.data
            self.front = self.front.next
            self.size = self.size - 1
            return result
    
        def is_empty(self):
            return self.size == 0
    
        def gethead(self):
            # read the front element of queue
            if not self.is_empty():
                return self.front.data
    
    
    if __name__ == "__main__":
        myQueue = LQueue()
        myQueue.enqueue(6)
        myQueue.enqueue(8)
        print("The top element of current queue is: ", myQueue.gethead())
    
        myQueue.dequeue()
        print("The top element of current queue is: ", myQueue.gethead())
     
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 10月27日
  • 已采纳回答 10月19日
  • 创建了问题 10月19日

悬赏问题

  • ¥50 三种调度算法报错 有实例
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥20 java在应用程序里获取不到扬声器设备