天天看點

3-08. 棧模拟隊列(25)(ZJU_PAT 模拟)

主題連結:http://pat.zju.edu.cn/contests/ds/3-08

設已知有兩個堆棧S1和S2,請用這兩個堆棧模拟出一個隊列Q。

所謂用堆棧模拟隊列,實際上就是通過調用堆棧的下列操作函數:

(1) int IsFull(Stack S):推斷堆棧S是否已滿,傳回1或0;

(2) int IsEmpty (Stack S ):推斷堆棧S是否為空,傳回1或0。

(3) void Push(Stack S, ElementType item ):将元素item壓入堆棧S;

(4) ElementType Pop(Stack S ):删除并傳回S的棧頂元素。

實作隊列的操作,即入隊void AddQ(ElementType item)和出隊ElementType DeleteQ()。

輸入格式說明:

輸入首先給出兩個正整數N1和N2,表示堆棧S1和S2的最大容量。随後給出一系列的隊列操作:“A item”表示将item入列(這裡如果item為整型數字);“D”表示出隊操作;“T”表示輸入結束。

輸出格式說明:

對輸入中的每一個“D”操作,輸出對應出隊的數字,或者錯誤資訊“ERROR:Empty”。

假設入隊操作無法運作,也須要輸出“ERROR:Full”。每一個輸出占1行。

例子輸入與輸出:

序号

輸入

輸出

1

2

PS:

個人認為題意有點難了解!反正我是了解了好久!

代碼例如以下:

版權聲明:本文部落客原創文章,部落格,未經同意不得轉載。