假設以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 是堆...