反向列表和添加问题

我正在尝试创建队列,而我的第一个问题是我的输出以相反的顺序打印“目录”部分(即“目录:5、4、3、2、1”而不是1、2) 3,4,5)

在本节后面的部分中,我也遇到了一个问题,我的数字为+ = 15,队列应该是10-15,但是我不知道该怎么做

 class Queue:
     def __init__(self,items):
         self.items = []

     def is_empty(self):
         return self.items == []

     def enqueue(self,item):
         self.items.insert(0,item)

     def __repr__(self):
    return "Contents: {}".format(str(self.items).strip("[]"))

     def dequeue(self):
         return self.items.pop()

     def size(self):
         return len(self.items)

 # -----------------------------------------------------

 def main():
     numbers = Queue("Numbers")

     print("Enqueue 1,2,3,4,5")
     print("---------------------")
     for number in range(1,6):
         numbers.enqueue(number)
         print(numbers)

     print("\nDequeue one item")
     print("----------------")
     numbers.dequeue()
     print(numbers)

     print("\nDeque all items")
     print("---------------")
     while not numbers.is_empty():
         print("Item dequeued:",numbers.dequeue())
         print(numbers)

     # Enqueue 10,11,12,13,14
     for number in range(10,15):
         numbers.enqueue(number)

     # Enqueue 15
     numbers += 15

     print("\n10,14,15 enqueued")
     print("-------------------------------")
     print(numbers)

 # -----------------------------------------------------

 main()
qpqp78952 回答:反向列表和添加问题

使用以下代码:

print("Enqueue 1,2,3,4,5")
print("---------------------")
for number in range(1,6):
    numbers.enqueue(number)

您正在将数字1、2、3、4和5添加到数据结构中。由于enqueue的实现,每个数字都添加到列表的开头(索引为零):

def enqueue(self,item):
    self.items.insert(0,item)

也就是说,在插入1、2、3、4和5之后,您将获得一个包含[5,1]的列表。

如果要将每个数字添加到items的末尾,则应将方法更改为:

def enqueue(self,item):
    self.items.append(item)

将改为打印以下内容:

Enqueue 1,5                                                                 
---------------------                                                                 
Contents: 1                                                                           
Contents: 1,2                                                                        
Contents: 1,3                                                                     
Contents: 1,4                                                                  
Contents: 1,5                                                               

此外,将15放入数据结构。更改:

    # Enqueue 15
    numbers += 15

收件人:

    # Enqueue 15
    numbers.enqueue(15)
本文链接:https://www.f2er.com/3155224.html

大家都在问