數據結構-堆棧習題


判斷題

1.通過對堆棧S操作:Push(S,1), Push(S,2), Pop(S), Push(S,3), Pop(S), Pop(S)。輸出的序列為:123。

     T      F

2.若一個棧的輸入序列為{1, 2, 3, 4, 5},則不可能得到{3, 4, 1, 2, 5}這樣的出棧序列。

     T      F

3.順序棧中元素值的大小是有序的。

     T      F

4.棧頂元素和棧底元素有可能是冋一個元素。

     T      F

5.棧底元素是不能刪除的元素。

     T      F

6.對順序棧進行進棧、出棧操作不涉及元素的前、后移動問題。

     T      F

7.若用data[1..m]表示順序棧的存儲空間,則對棧的進棧、出棧操作最多只能進行m次。

     T      F

選擇題

1.設一個棧的輸入序列是1、2、3、4、5,則下列序列中,是棧的合法輸出序列的是?

     A.3 2 1 5 4
     B.5 1 2 3 4
     C.4 5 1 3 2
     D.4 3 1 2 5

2.若一個棧的入棧序列為1、2、3、…、N,輸出序列的第一個元素是i,則第j個輸出元素是

     A.i−j−1
     B.i−j
     C.j−i−1
     D. 不確定

3.設一個堆棧的入棧順序是1、2、3、4、5。若第一個出棧的元素是4,則最后一個出棧的元素必定是:

     A.1
     B.3
     C.5
     D. 1或者5
//還可能繼續入棧 所以有5

4.表達式a*(b+c)-d的后綴表達式是:

     A.a b c + * d -
     B.a b c d * + -
     C.a b c * + d -
     D.- + * a b c d

5.假設有5個整數以1、2、3、4、5的順序被壓入堆棧,且出棧順序為3、5、4、2、1,那么為了獲得這樣的輸出,堆棧大小至少為:

     A.2
     B.3
     C.4
     D.5

6.有六個元素以6、5、4、3、2、1的順序進棧,問哪個不是合法的出棧序列?

     A.2 3 4 1 5 6
     B.3 4 6 5 2 1
     C.5 4 3 6 1 2
     D.4 5 3 1 2 6

7.若一個棧的入棧序列為1、2、3、…、N,其輸出序列為p1、p2、p3、…、pN。若p1=N,則pi為:

     A.i
     B.n−i
     C.n−i+1
     D.不確定
//最后一個入棧,且為第一個出棧。請前面自然是固定的順序

8.令P代表入棧,O代表出棧。當利用堆棧求解后綴表達式1 2 3 + * 4 –時,堆棧操作序列是:

     A.PPPOOPOO
     B.PPOOPPOOPPOO
     C.PPPOOPOOPPOO
     D. PPPOOPOOPPOOPO
//有點東西,要算完的。1 2 3 PPP + O (2+3)  * O (2+3)*1 4 P  - O (2+3)*1-4 O。。。不解

9.若采用帶頭、尾指針的單向鏈表表示一個堆棧,那么該堆棧的棧頂指針top應該如何設置?

     A .將鏈表頭設為top
     B.將鏈表尾設為top
     C.隨便哪端作為top都可以
     D.鏈表頭、尾都不適合作為top

10.利用大小為n的數組(下標從0n-1)存儲一個棧時,假定棧從數組另一頭開始且top==n表示棧空,則向這個棧插入一個元素時,修改top指針應當執行:

     A.top=0
     B.top++
     C.top--
     D.top不變

11.若棧采用順序存儲方式存儲,現兩棧共享空間V[m]top[i]代表第ii=1或2)個棧的棧頂;棧1的底在V[0],棧2的底在V[m-1],則棧滿的條件是:

     A.|top[2]-top[1]|==0
     B.top[1]+top[2]==m
     C.top[1]==top[2]
     D. top[1]+1==top[2]
//是從中間開始的,而不是從兩端開始的。
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM