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

2021-10-10 06:43:08 字數 1847 閱讀 2421

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和...