題目:編寫乙個類,用兩個棧實現佇列,支援佇列的基本操作(add,poll,peek).
棧的特點是先進後出,而佇列的特點是先進先出,我們可以用兩個棧正好順序反過來實現類似佇列操作。
分析:具體實現上是乙個棧作為壓入棧,在壓入資料時指望這個棧中壓入,即為stackpush,另乙個只作為彈出棧,在彈出資料時只從這個棧彈出,即為stackpop。雖然簡單,但是要注意兩點:
1.如果stackpush要往stackpop中壓入資料,必須一次性把stackpush中的資料全部壓入。
2.如果stackpop不為空,不能壓入資料。
**如下:
public class usestackdoqueue
public static int peek() else if (stackpop.isempty())
}return stackpop.peek();
}public static int pop() else if (stackpop.isempty())
}return stackpop.pop();}}
由兩個棧組成佇列
說明 本文是左程雲老師所著的 程式設計師面試 指南 第一章中 由兩個棧組成的佇列 這一題目的c 復現。感謝左程雲老師的支援。題目 編寫乙個類,用兩個棧實現佇列,支援佇列的基本操作 push pop front 思路 乙個棧作為資料的壓如棧,乙個棧作為資料的彈出棧。編譯環境 centos6.7 x86...
棧和佇列 由兩個棧組成佇列
題目 編寫乙個類,用兩個棧實現佇列,支援佇列的基本操作 add,poll,peek 基本思路 使用兩個棧stackpush stackpop,stackpush棧負責壓入資料 stackpop棧負責將stackpush中的元素逆序,用於獲取或者彈出棧頂元素。但是有乙個規則 stackpop只有為空的...
由兩個棧組成的佇列
用兩個棧實現佇列,支援佇列的基本操作。第一行輸入乙個整數n,表示對佇列進行的操作總數。下面n行每行輸入乙個字串s,表示操作的種類。如果s為 add 則後面還有乙個整數x表示向佇列尾部加入整數x。如果s為 poll 則表示彈出佇列頭部操作。如果s為 peek 則表示詢問當前佇列中頭部元素是多少。對於每...