列表,隊列。LifoQueue都可以作為棧使用,但是沒有棧。
此外,隊列中沒有入隊和出隊方法。隊列和集合。出列
如果reverse等式的意義是將Q中的所有元素出隊,將它們推入堆棧,然後將Q從堆棧中保存回來,則reverse的寫法是錯誤的。
正確的做法是這樣的:
定義版本(q):
s =堆棧()
而不是q.is_empty():
s . push(q . dequeue())
而不是s.is_empty():
隊列(s.pop())
兩個問題:
Q.is_empty始終為true,因此您實際上沒有執行在堆棧中保存隊列元素的步驟。這句話相當於:
while not has attr(q,“is_empty”)
#正確寫法:
while not q.is_empty()
妳只做了壹次連接操作。