python 用两个栈实现一个队列
生活随笔
收集整理的這篇文章主要介紹了
python 用两个栈实现一个队列
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
| 兩個棧實現隊列
用兩個棧實現一個隊列。隊列的聲明如下,請實現它的兩個函數 appendTail 和 deleteHead ,分別完成在隊列尾部插入整數和在隊列頭部刪除整數的功能。(若隊列中沒有元素,deleteHead 操作返回 -1 )
示例 1:
輸入:
[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”]
[[],[3],[],[]]
輸出:[null,null,3,-1]
示例 2:
輸入:
[“CQueue”,“deleteHead”,“appendTail”,“appendTail”,“deleteHead”,“deleteHead”]
[[],[],[5],[2],[],[]]
輸出:[null,-1,null,null,5,2]
|題解
解題思路:
- 棧無法實現隊列功能: 棧底元素(對應隊首元素)無法直接刪除,需要將上方所有元素出棧。
- 雙棧可實現列表倒序: 設有含三個元素的棧 A = [1,2,3]A=[1,2,3] 和空棧 B = []B=[]。若循環執行 AA 元素出棧并添加入棧 BB ,直到棧 AA 為空,則 A = []A=[] , B = [3,2,1]B=[3,2,1] ,即 棧 BB 元素實現棧 AA 元素倒序 。
- 利用棧 BB 刪除隊首元素: 倒序后,BB 執行出棧則相當于刪除了 AA 的棧底元素,即對應隊首元素。
總結
以上是生活随笔為你收集整理的python 用两个栈实现一个队列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 环形链表
- 下一篇: python 用队列实现栈