這是當年《資料結構》課的乙個問題,拿出來鞏固一下。使用兩個棧,其中乙個棧stack1負責新增元素,另外乙個棧stack2負責彈出元素。分兩種情況,如果stack2不空則直接彈出,否則逐個彈出stack1中的元素放入stack2中,然後再從stack2中彈出乙個元素。
packagealgorithm.learn;
/*** created by liujinhong on 2017/3/7.
* 用兩個棧來模擬對類 */
public
class stackqueue
public
void
offer(e e)
public
e poll()
}return
stack2.pop();
}public
static
void
main(string args)
for (int i = 0; i < 20; i++)
}}
兩個棧模擬乙個佇列 兩個佇列模擬乙個棧
解題思路 插入操作在stack1中進行,刪除操作在stack2中進行,如果stack2為空,則將stack1中的所有元素轉移到stack2中。include include includeusing namespace std template class cqueue 建構函式 template ...
如何用兩個棧實現乙個佇列
問題 如何用兩個棧實現乙個對列的功能?思路 從棧a入佇列,從棧b出佇列。佇列的2個最重要的操作,入佇列,出佇列。入佇列 從棧a入佇列。出佇列 分兩種情況 如果棧b不為空,直接彈出。如果棧b為空,將棧a中的資料全部彈入棧b中,再從棧b彈出資料 實現如下 queuebystack.cpp 定義控制台應用...
兩個棧模擬乙個佇列
兩個棧模擬乙個佇列,1號棧為入隊,棧頂表示隊尾 2號棧為出隊,棧頂表示隊首。入隊,直接進1號棧 出隊,先判斷2號棧是否有元素,有元素就直接彈出棧頂即隊首,如果2號棧沒有元素,則將1號棧的元素順序彈出並進2號棧。cpp view plain copy include include include u...