1. 程式人生 > >第三章作業1-棧

第三章作業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分)

2-4

給定一個堆疊的入棧序列為{ 1, 2, ⋯, n },出棧序列為{ p​1​​, p​2​​, ⋯, p​n​​ }。如果p​2​​=n,則存在多少種不同的出棧序列?(2分)

  1. 1
  2. 2
  3. n−1
  4. n

p2==n, 則n第二個出棧,第一個出棧的可以是1,2,3,4.。。。n-1

2-5

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

  1. 1
  2. 3
  3. 5
  4. 1或者5

2-6

從棧頂指標為ST的鏈棧中刪除一個結點且用X儲存被刪結點的值,則執行: (2分)

  1. X= ST->data;
  2. X= ST; ST = ST->next;
  3. X= ST->data; ST = ST->next;
  4. 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. 1
  2. 2
  3. 3
  4. 4

2-8

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

  1. 2
  2. 3
  3. 4
  4. 5

2-9

若元素a、b、c、d、e、f依次進棧,允許進棧、退棧操作交替進行,但不允許連續三次進行退棧工作,則不可能得到的出棧序列是? (2分)

  1. b c a e f d
  2. c b d a e f
  3. d c e b f a
  4. a f e d c b

2-10

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

  1. 3 2 1 5 4
  2. 5 1 2 3 4
  3. 4 5 1 3 2
  4. 4 3 1 2 5

2-11

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

  1. 2 3 4 1 5 6
  2. 3 4 6 5 2 1
  3. 5 4 3 6 1 2
  4. 4 5 3 1 2 6

2-12

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

  1. i−j−1
  2. i−j
  3. j−i−1
  4. 不確定

2-13

若一個棧的入棧序列為1、2、3、…、N,其輸出序列為p​1​​、p​2​​、p​3​​、…、p​N​​。若p​1​​=N,則p​i​​為: (2分)

  1. i
  2. n−i
  3. n−i+1
  4. 不確定

2-14

將5個字母ooops按此順序入棧,則有多少種不同的出棧順序可以仍然得到ooops? (2分)

  1. 1
  2. 3
  3. 5
  4. 6

jcjcjc

jjjccc

jjccjc

jcjjcc

jjcjcc

2-15

棧的插入和刪除操作在( )進行。 (2分)

  1. 棧頂
  2. 棧底
  3. 任意位置
  4. 指定位置