如何在不使用堆栈或队列的情况下编写自己的Python等效堆栈推送和弹出函数?

时间:2015-02-03 16:33:40

标签: python linux stack queue

我正在使用Linux和Python。我不想使用os.system来完成这个,也不想使用内置的堆栈或队列函数。

1 个答案:

答案 0 :(得分:1)

您可以使用list进行队列和堆栈:

堆叠:(FILO)

>>> st = list()
>>> st.append(1)
>>> st
[1]
>>> st.append(2)
>>> st
[1, 2]
>>> st.pop() # it removes the last element (i.e. the newest element in the list)
2 
>>> st
[1]

队列:(FIFO) - 弹出列表中的第一个元素

>>> que = list()
>>> que.append(1)
>>> que
[1]
>>> que.append(2)
>>> que
[1, 2]
>>> que.pop(0)  # we pass in index 0 to remove the earliest element in the list 
1 
>>> que
[2]

请注意,pop(0)的效果不佳,因为list()并非设计用于将其用作队列。使用内置collections.deque()首选