第三章作業1-棧
1-1
通過對堆疊S操作:Push(S,1), Push(S,2), Pop(S), Push(S,3), Pop(S), Pop(S)。輸出的序列為:123。 (2分)
F:應是231
1-2
若一個棧的輸入序列為1,2,3,…,N,輸出序列的第一個元素是i,則第j個輸出元素是j−i−1。 (2分)
F:
[解析] 一串資料依次通過一個棧,並不能保證出棧資料的次序總是倒置,可以產生多種出棧序列。一串資料通過一個棧後的次序由每個資料之間的進棧、出棧操作序列決定,只有當所有資料“全部進棧後再全部出棧”才能使資料倒置。事實上,存在一種操作序列――“進棧、出棧、進棧、出棧……”――可以使資料通過棧後仍然保持次序不變。
題目中輸出序列的第一個元素是i,則第j個輸出元素是不確定的。
1-3
若一個棧的輸入序列為{1, 2, 3, 4, 5},則不可能得到{3, 4, 1, 2, 5}這樣的出棧序列。 (2分)
T
2-4
給定一個堆疊的入棧序列為{ 1, 2, ⋯, n },出棧序列為{ p1, p2, ⋯, pn }。如果p2=n,則存在多少種不同的出棧序列?(2分)
- 1
- 2
- n−1
- n
p2==n, 則n第二個出棧,第一個出棧的可以是1,2,3,4.。。。n-1
2-5
設一個堆疊的入棧順序是1、2、3、4、5。若第一個出棧的元素是4,則最後一個出棧的元素必定是: (2分)
- 1
- 3
- 5
- 1或者5
2-6
從棧頂指標為ST
的鏈棧中刪除一個結點且用X
儲存被刪結點的值,則執行: (2分)
X= ST->data;
X= ST; ST = ST->next;
X= ST->data; ST = ST->next;
ST = ST->next; X= ST->data;
2-7
設棧S和佇列Q的初始狀態均為空,元素a、b、c、d、e、f、g依次進入棧S。若每個元素出棧後立即進入佇列Q,且7個元素出隊的順序是b、d、c、f、e、a、g,則棧S的容量至少是: (2分)
- 1
- 2
- 3
- 4
2-8
假設有5個整數以1、2、3、4、5的順序被壓入堆疊,且出棧順序為3、5、4、2、1,那麼為了獲得這樣的輸出,堆疊大小至少為: (2分)
- 2
- 3
- 4
- 5
2-9
若元素a、b、c、d、e、f依次進棧,允許進棧、退棧操作交替進行,但不允許連續三次進行退棧工作,則不可能得到的出棧序列是? (2分)
- b c a e f d
- c b d a e f
- d c e b f a
- a f e d c b
2-10
設一個棧的輸入序列是1、2、3、4、5,則下列序列中,是棧的合法輸出序列的是? (2分)
- 3 2 1 5 4
- 5 1 2 3 4
- 4 5 1 3 2
- 4 3 1 2 5
2-11
有六個元素以6、5、4、3、2、1的順序進棧,問哪個不是合法的出棧序列? (2分)
- 2 3 4 1 5 6
- 3 4 6 5 2 1
- 5 4 3 6 1 2
- 4 5 3 1 2 6
2-12
若一個棧的入棧序列為1、2、3、…、N,輸出序列的第一個元素是i,則第j個輸出元素是: (2分)
- i−j−1
- i−j
- j−i−1
- 不確定
2-13
若一個棧的入棧序列為1、2、3、…、N,其輸出序列為p1、p2、p3、…、pN。若p1=N,則pi為: (2分)
- i
- n−i
- n−i+1
- 不確定
2-14
將5個字母ooops
按此順序入棧,則有多少種不同的出棧順序可以仍然得到ooops
? (2分)
- 1
- 3
- 5
- 6
jcjcjc
jjjccc
jjccjc
jcjjcc
jjcjcc
2-15
棧的插入和刪除操作在( )進行。 (2分)
- 棧頂
- 棧底
- 任意位置
- 指定位置