PTA資料結構之 堆疊操作合法性

2021-08-15 09:03:59 字數 1314 閱讀 2554

假設以sx分別表示入棧和出棧操作。如果根據乙個僅由sx構成的序列,對乙個空堆疊進行操作,相應操作均可行(如沒有出現刪除時棧空)且最後狀態也是棧空,則稱該序列是合法的堆疊操作序列。請編寫程式,輸入sx序列,判斷該序列是否合法。

輸入第一行給出兩個正整數n和m,其中n是待測序列的個數,m(≤5

0)是堆疊的最大容量。隨後n行,每行中給出乙個僅由sx構成的序列。序列保證不為空,且長度不超過100。

對每個序列,在一行中輸出yes如果該序列是合法的堆疊操作序列,或no如果不是。

4 10

sssxxsxxsx

sssxxsxxs

ssssssssssxss*********xx

sssxxs***

yes

nono

no

#include#include#include#includeusing namespace std;

#define ok 1

#define error 0

#define true 1

#define false 0

#define overflow -2

#define stack_init_size 100

#define stackincrement 10

typedef char selemtype;

typedef int status;

typedef struct

sqstack;

status init_s(sqstack &s)

status push_stack(sqstack &s,selemtype e)//ruzhan

*s.top=e;

s.top++;

return ok;

}status empty_stack(sqstack &s)

status pop_stack(sqstack &s)

status destory_s(sqstack &s)

int judgestacksize(sqstack &s)

int main()

}if(!empty_stack(s))

if(geshu==0)

else

if(i!=m-1)

cout<

PTA 堆疊操作合法性

題目要求 假設以s和x分別表示入棧和出棧操作。如果根據乙個僅由s和x構成的序列,對乙個空堆疊進行操作,相應操作均可行 如沒有出現刪除時棧空 且最後狀態也是棧空,則稱該序列是合法的堆疊操作序列。請編寫程式,輸入s和x序列,判斷該序列是否合法。輸入格式 輸入第一行給出兩個正整數n和m,其中n是待測序列的...

浙大PTA堆疊操作合法性

假設以s和x分別表示入棧和出棧操作。如果根據乙個僅由s和x構成的序列,對乙個空堆疊進行操作,相應操作均可行 如沒有出現刪除時棧空 且最後狀態也是棧空,則稱該序列是合法的堆疊操作序列。請編寫程式,輸入s和x序列,判斷該序列是否合法。輸入格式 輸入第一行給出兩個正整數n和m,其中n是待測序列的個數,m ...

瀋陽師範大學PTA 資料結構 堆疊操作合法性

7 1 堆疊操作合法性 10分 假設以s和x分別表示入棧和出棧操作。如果根據乙個僅由s和x構成的序列,對乙個空堆疊進行操作,相應操作均可行 如沒有出現刪除時棧空 且最後狀態也是棧空,則稱該序列是合法的堆疊操作序列。請編寫程式,輸入s和x序列,判斷該序列是否合法。輸入格式 輸入第一行給出兩個正整數n和...