7 1 堆疊操作合法性 10分

2021-10-05 23:16:49 字數 1228 閱讀 7544

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

輸入格式:

輸入第一行給出兩個正整數n和m,其中n是待測序列的個數,m(≤50)是堆疊的最大容量。隨後n行,每行中給出乙個僅由s和x構成的序列。序列保證不為空,且長度不超過100。

輸出格式:

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

輸入樣例:

4 10

sssxxsxxsx

sssxxsxxs

ssssssssssxss*********xx

sssxxs***

輸出樣例:

yesno

nono

#include

"stdio.h"

#include

"stdlib.h"

struct stack

;int

isempty

(struct stack *s)

else

}int

stacklegth

(struct stack *s)

intisfull

(struct stack *s)

else

}int

push

(struct stack *s,

char e)

else

}int

pop(

struct stack *s,

char

*e)else

}int

init

(struct stack *s,

int n)

s->size=n;

return1;

}int

main()

push

(&a,

's');}

else

if(ch==

'x')

char c;

pop(

&a,&c);}

}if(t==0&&

stacklegth

(&a)==0

)else

}return0;

}

頹廢了很多天之後的第一篇部落格。。是關於資料結構的題。

7 1 堆疊操作合法性

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

7 1 堆疊操作合法性(20 分)

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

7 1 堆疊操作合法性 (20 分

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