BJFU_数据结构习题_241双栈的基本操作
歡迎登錄北京林業(yè)大學(xué)OJ系統(tǒng)
http://www.bjfuacm.com
241雙棧的基本操作
描述
將編號(hào)為0和1的兩個(gè)棧存放于一個(gè)數(shù)組空間V[m]中,棧底分別處于數(shù)組的兩端。當(dāng)?shù)?號(hào)棧的棧頂指針top[0]等于-1時(shí)該棧為空;當(dāng)?shù)?號(hào)棧的棧頂指針top[1]等于m時(shí),該棧為空。兩個(gè)棧均從兩端向中間增長(zhǎng)(見(jiàn)下圖)。試編寫雙棧初始化,判斷棧空、棧滿、進(jìn)棧和出棧算法的函數(shù)。函數(shù)調(diào)用次序依次為:進(jìn)棧、棧滿的判斷、出棧、棧空的判斷。
雙棧數(shù)據(jù)結(jié)構(gòu)的定義如下:
typedef struct
{
int top[2], bot[2];//棧頂和棧底指針
SElemType *V; //棧數(shù)組
int m;//棧最大可容納元素個(gè)數(shù)
}DblStack;
輸入
多組數(shù)據(jù),每組數(shù)據(jù)有四行,每行的數(shù)據(jù)之間均用空格分隔。第一行為一個(gè)整數(shù)m,表示數(shù)組V的大小,第二行為四個(gè)整數(shù)e0、e1、d0、d1,e0和e1分別代表壓入0號(hào)棧和1號(hào)棧的整數(shù)序列E0和E1的長(zhǎng)度(依次連續(xù)入棧,中間沒(méi)有出棧的情況),d0和d1分別代表從0號(hào)棧和1號(hào)棧彈出的序列的長(zhǎng)度(依次連續(xù)出棧,中間沒(méi)有入棧的情況)。第三行和第四行分別表示序列E0和E1。當(dāng)m=0時(shí),輸入結(jié)束。
輸出
對(duì)于每組數(shù)據(jù)輸出三行。第一行代表進(jìn)棧操作完成時(shí)棧是否為滿(出棧操作尚未執(zhí)行),棧滿輸出1,棧不滿輸出0。第二行和第三行的數(shù)據(jù)分別對(duì)應(yīng)0號(hào)棧和1號(hào)棧。第二行包括d0+1個(gè)整數(shù),其中前d0個(gè)整數(shù)代表出棧序列D0,最后一個(gè)整數(shù)代表出棧操作完成時(shí)0號(hào)棧是否為空,棧空輸出0,不空輸出1。第三行包括d1+1個(gè)整數(shù),其中前d1個(gè)整數(shù)代表出棧序列D1,最后一個(gè)整數(shù)代表出棧操作完成時(shí)1號(hào)棧是否為空,棧空輸出0,不空輸出1。整數(shù)之間用空格分隔。
輸入樣例 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
總結(jié)
以上是生活随笔為你收集整理的BJFU_数据结构习题_241双栈的基本操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【Windows】如何修改远程桌面端口3
- 下一篇: Visual Studio2012 编译