Problem A 判斷操作是否合法(棧和佇列)

2021-07-10 23:21:04 字數 812 閱讀 9807

time limit: 1 sec  

memory limit: 128 mb

submit: 67  

solved: 22

假設以i和o分別表示進棧和出棧操作,棧的初態和終態均為空,進棧和出棧的操作序列可表示為僅由i和o組成的序列。

順序棧的定義為

typedef struct

sqstack;

編寫乙個演算法,判斷棧中的序列是否合法!若合法則返回1,否則返回0.

需編寫的演算法為:

int judge(sqstack *s);

輸入為乙個字串,表示進棧出棧的操作序列,該序列儲存在棧中。

若操作序列合法則輸出「yes」,否則輸出"no"。

ioiioioo
yes

1、只需提交你所編寫的演算法

2、棧的初態和終態均為空

#include #include #include #define sizemax 105

typedef char elemtype;

typedef struct

sqstack;

void initstack(sqstack *&s)

bool push(sqstack *&s,elemtype c)

int judge(sqstack *s)

if(i!=-1)return 0;

else return 1;

}void destroystack(sqstack *&s)

int main()

判斷操作是否合法A

time limit 1 sec memory limit 128 mb submit 44 solved 14 submit status web board 假設以i和o分別表示進棧和出棧操作,棧的初態和終態均為空,進棧和出棧的操作序列可表示為僅由i和o組成的序列。順序棧的定義為 typedef...

判斷操作是否合法(棧)

假設以i和o分別表示進棧和出棧操作,棧的初態和終態均為空,進棧和出棧的操作序列可表示為僅由i和o組成的序列。順序棧的定義為 typedef struct sqstack 編寫乙個演算法,判斷棧中的序列是否合法!若合法則返回1,否則返回0.需編寫的演算法為 int judge sqstack s 輸入...

資料結構實驗題 判斷入棧出棧操作序列是否合法

假設以i和o分別代表入棧和出棧操作,設計乙個演算法判斷任一給定的棧操作序列是否合法。例如 ioioiiooio 演算法的設計思想 依次掃瞄出棧入棧操作序列,每掃瞄至乙個位置,需檢查出棧次數是否大於入棧次數,若大則非法。掃瞄結束後,再檢查出棧次數與入棧次數是否相等,若不相等,則非法。c 如下 incl...