播种器菜鸡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日

悬赏问题

  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助