假設以s
和x
分別表示入棧和出棧操作。如果根據乙個僅由s
和x
構成的序列,對乙個空堆疊進行操作,相應操作均可行(如沒有出現刪除時棧空)且最後狀態也是棧空,則稱該序列是合法的堆疊操作序列。請編寫程式,輸入s
和x
序列,判斷該序列是否合法。
輸入第一行給出兩個正整數n和m,其中n是待測序列的個數,m(≤50)是堆疊的最大容量。隨後n行,每行中給出乙個僅由s
和x
構成的序列。序列保證不為空,且長度不超過100。
對每個序列,在一行中輸出yes
如果該序列是合法的堆疊操作序列,或no
如果不是。
4 10
sssxxsxxsx
sssxxsxxs
ssssssssssxss*********xx
sssxxs***
**:yes
nono
no
#include#include#include#define stack_size 51
using namespace std;
typedef int selemtype;
typedef struct
sqstack;
int creats(sqstack &s)
int gettop(sqstack &s,selemtype &e)
int push(sqstack &s,selemtype e)
*s.top++=e;
return 1;
}int pop(sqstack &s,char &e)
int empty(sqstack &s)
int main()
}else
else}}
if(f)
}}
7 1 堆疊操作合法性
7 1 堆疊操作合法性 20 分 假設以s和x分別表示入棧和出棧操作。如果根據乙個僅由s和x構成的序列,對乙個空堆疊進行操作,相應操作均可行 如沒有出現刪除時棧空 且最後狀態也是棧空,則稱該序列是合法的堆疊操作序列。請編寫程式,輸入s和x序列,判斷該序列是否合法。輸入格式 輸入第一行給出兩個正整數n...
5 5 堆疊操作合法性 20分
5 5 堆疊操作合法性 20分 假設以s和x分別表示入棧和出棧操作。如果根據乙個僅由s和x構成的序列,對乙個空堆疊進行操作,相應操作均可行 如沒有出現刪除時棧空 且最後狀態也是棧空,則稱該序列是合法的堆疊操作序列。請編寫程式,輸入s和x序列,判斷該序列是否合法。輸入第一行給出兩個正整數n和m,其中n...
5 5 堆疊操作合法性 20分
5 5 堆疊操作合法性 20分 假設以s和x分別表示入棧和出棧操作。如果根據乙個僅由s和x構成的序列,對乙個空堆疊進行操作,相應操作均可行 如沒有出現刪除時棧空 且最後狀態也是棧空,則稱該序列是合法的堆疊操作序列。請編寫程式,輸入s和x序列,判斷該序列是否合法。輸入第一行給出兩個正整數n和m,其中n...