之前寫過一遍棧的實現,今天說說怎麼用棧實現佇列的功能
題目描述
用兩個棧來實現乙個佇列,完成佇列的push和pop操作。 佇列中的元素為int型別。
首先做題前明確思路,再動手碼**。
1.佇列是先進先出,而棧是先進後出
2.實現佇列就是實現佇列的兩個操作,入隊和出隊
使用兩個棧stack1和stack2,stack1模擬入隊,stack2模擬出隊
操作思路如下:
1.入隊操作,直接將資料壓入stack1棧即可。
void
push
(int node)
2.出隊操作,若stack2不為空,直接彈出棧頂元素,若不為空,將stack1所有元素彈入stack2之後,再彈出stack2棧頂元素。
這裡稍稍要思考的乙個地方就是,當stack2為空時的操作思路,因為佇列是先進先出的,往stack2裡面放元素時,需要把stack1最先進入的元素最後放,這樣它就在棧頂了,就滿足先進先出的原則了,想通這一點就很好寫**了
int
pop()}
//stack2不為空,則直接彈出棧頂元素
a = stack2.
top();
stack2.
pop();
return a;
}
**該過程,這三句**的作用如下,元素的位置發生了改變,最先進入的元素1,變成了棧頂元素,滿足了先進先出原則
程式設計師修煉。。。
第一重 在哪本電腦雜誌上看見軟體工程師這個職業介紹,或者走在大街上看見某某軟體培訓機構鼓吹培訓完就能年薪10萬的廣告,有些羨慕那些程式設計序的,自己有些蠢蠢欲動。第二重 用控制台或者說sdk之類的東西寫了乙個 hello world 感覺程式設計這個東西,太簡單沒難度。第三重 學會了簡單的使用某某工...
程式設計師武功修煉
第一階段 此階段主要是能熟練地使用某種語言。這就相當於練武中的套路和架式這些表面的東西。第二階段 此階段能精通基於某種平台的介面 例如我們現在常用的win 32的api函式 以及所對應語言的自身的庫函式。到達這個階段後,也就相當於可以進行真實散打對練了,可以真正地在實踐中做些應用。第三階段 此階段能...
程式設計師修煉之道
在所有的弱點中,最大的弱點就是害怕自己暴露弱點。j.b bossuet,politics from holy writ,1709 provide options,don t make lame excuses 提供各種選擇,不要找蹩腳的藉口 don t live with broken window...