BJFU_数据结构习题_241双栈的基本操作
歡迎登錄北京林業大學OJ系統
http://www.bjfuacm.com
241雙棧的基本操作
描述
將編號為0和1的兩個棧存放于一個數組空間V[m]中,棧底分別處于數組的兩端。當第0號棧的棧頂指針top[0]等于-1時該棧為空;當第1號棧的棧頂指針top[1]等于m時,該棧為空。兩個棧均從兩端向中間增長(見下圖)。試編寫雙棧初始化,判斷??铡M、進棧和出棧算法的函數。函數調用次序依次為:進棧、棧滿的判斷、出棧、??盏呐袛?。
雙棧數據結構的定義如下:
typedef struct
{
int top[2], bot[2];//棧頂和棧底指針
SElemType *V; //棧數組
int m;//棧最大可容納元素個數
}DblStack;
輸入
多組數據,每組數據有四行,每行的數據之間均用空格分隔。第一行為一個整數m,表示數組V的大小,第二行為四個整數e0、e1、d0、d1,e0和e1分別代表壓入0號棧和1號棧的整數序列E0和E1的長度(依次連續入棧,中間沒有出棧的情況),d0和d1分別代表從0號棧和1號棧彈出的序列的長度(依次連續出棧,中間沒有入棧的情況)。第三行和第四行分別表示序列E0和E1。當m=0時,輸入結束。
輸出
對于每組數據輸出三行。第一行代表進棧操作完成時棧是否為滿(出棧操作尚未執行),棧滿輸出1,棧不滿輸出0。第二行和第三行的數據分別對應0號棧和1號棧。第二行包括d0+1個整數,其中前d0個整數代表出棧序列D0,最后一個整數代表出棧操作完成時0號棧是否為空,棧空輸出0,不空輸出1。第三行包括d1+1個整數,其中前d1個整數代表出棧序列D1,最后一個整數代表出棧操作完成時1號棧是否為空,棧空輸出0,不空輸出1。整數之間用空格分隔。
輸入樣例 1
7
3 4 2 2
1 2 3
2 3 4 5
12
4 6 4 3
1 3 4 5
1 3 5 6 8 1
0
輸出樣例 1
1
3 2 1
5 4 1
0
5 4 3 1 0
1 8 6 1
總結
以上是生活随笔為你收集整理的BJFU_数据结构习题_241双栈的基本操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Windows】如何修改远程桌面端口3
- 下一篇: 了解H.264(AVC)的你,知不知道什