7-1 堆疊操作合法性 (10分)
假設以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
#include
typedef
struct node* nodepoint;
typedef
class
stack
* stackpoint;
struct node
;class
stack
void
setstackfull
(int num)
intgetstackfull()
void
leftadd()
void
rightadd()
intgetleft()
intgetright()
intgetlength()
void
stackpush
(char data)
else
this
->stacklength++;}
char
stackpop()
nodepoint deletenode;
char data;
deletenode=
this
->p;
data=p-
>data;
this
->p=
this
->p-
>link;
delete
(deletenode)
;this
->stacklength--
;return data;}}
;void
printnode
(stackpoint* s1)
}bool
varify2
(char data1,stackpoint* s1)if(
(*s1)
->
getlength()
<0)
elseif(
(*s1)
->
getlength()
==0)elseif(
(*s1)
->
getlength()
>0)
return stat;
}bool
readnode
(int num2)
if(data1==
'x')
data1=
getchar()
;}if(s1-
>
getleft()
!=s1-
>
getright()
)return stat;
}int
main()
else
}}
瀋陽師範大學 資料結構 PTA 佇列操作
7 5 佇列操作 10分 請實現乙個myqueue類,實現出隊,入隊,求佇列長度.實現入隊函式 void push int x 實現出隊函式 int pop 實現求佇列長度函式 int size 輸入格式 每個輸入包含1個測試用例。每個測試用例第一行給出乙個正整數 n n 10 6 接下去n行每行乙...
瀋陽師範大學大二上資料結構 棧和佇列
7 1 堆疊操作合法性 10分 假設以s和x分別表示入棧和出棧操作。如果根據乙個僅由s和x構成的序列,對乙個空堆疊進行操作,相應操作均可行 如沒有出現刪除時棧空 且最後狀態也是棧空,則稱該序列是合法的堆疊操作序列。請編寫程式,輸入s和x序列,判斷該序列是否合法。輸入格式 輸入第一行給出兩個正整數n和...
南京師範大學2023年GIS 資料結構考研試題
1 編寫程式實現對一迴圈佇列中所有元素的逆轉。15分 2 素數就是僅能被1和它自身整除的整數。判定乙個整數n是否為素數就是要判定整數n能否被除1和它自身之外的任意整數整除,若都不能整除,則n為素數。編寫程式計算100以內的所有素數。15分 3 已知strcmp的函式原型。該函式的功能為比較字串s1和...