PTA 第三章 棧與隊列


一、判斷題

1.若一個棧的輸入序列為1,2,3,……,N,輸出序列的第一個元素為i,則第j個輸出的元素是j-i-1    (×)解析:應該是不確定的,不能保證數字出棧后不會再入棧

2.所謂“循環隊列”是指用單向循環鏈表或者循環數組表示的隊列    (×)解析:循環隊列指的是后者,用數組表示的隊列,利用求余數運算使得頭尾相接

3.在對不帶頭結點的鏈隊列做出隊操作時,不會改變頭指針的值    (×)解析:會改變頭指針的值,變成相連指針的值

4.不論是入隊列操作還是入棧操作,在順序存儲結構上都需要考慮“溢出”的情況    (√)解析:因為存儲空間是有限的

5.隊列和棧都是運算受限的線性表,只允許在表的兩端進行運算    (×)解析:前半句對,后半句中棧只能在一段進行操作,只有隊列才是在兩端進行操作

6.棧和隊列的存儲方式,既可以是順序方式,也可以是鏈式方式    (√)

7.循環隊列也存在着空間溢出問題    (√)解析:循環隊列的存儲空間也是有限的

8.循環隊列執行出隊操作時會引起大量元素的移動    (×)

9.棧是插入和刪除只能在一端進行的線性表;隊列是插入在一端進行,刪除在另一端進行的線性表    (√)

10.在n個元素連續進棧以后,他們的出棧順序和進棧順序一定正好相反    (√)

11.環形隊列中有多少個元素可以根據隊首指針和隊尾指針的值來計算    (√)

12.棧和隊列的插入和刪除操作特殊,所以,棧和隊列是非線性結構    (×)

13.序列{1,2,3,4,5}依次入棧,則不可能得到{3,4,1,2,5}的出棧序列    (√)

14.隊列中允許插入的一端叫隊頭,允許刪除的一端叫隊尾     (×)解析:正好相反,允許插入的一端叫隊尾,允許刪除的一端叫隊頭,前頭后尾

二、單選題

2-1.若用大小為6的數組來實現循環隊列,且當前front和rear的值分別為0和4。當從隊列中刪除兩個元素,再加入兩個兩個元素后,front和rear的值分別為多少:

    A.2和0

    B.2和2

    C.2和4

    D.2和6

解析:初始化創建空隊列時,令front=rear=0,每當插入新的隊列尾元素時,rear增1,每當刪除一個隊列首元素時,front增1。則刪除一個,front++,增加一個rear++

2-2.如果循環隊列用大小為m的數組表示,且用隊頭指針front和隊列元素個數size代替一般循環隊列中的front和rear指針來表示隊列的范圍,那么這樣的循環隊列可以容納的元素個數最多為:

    A.m-1

    B.m

    C.m+1

    D.不能確定

2-3.以下數據結構中,()是非線性數據結構。

    A.樹

    B.字符串

    C.隊列

    D.棧

2-4.設棧S和隊列Q的初始狀態均為空,元素{1,2,3,4,5,6,7}依次進入棧S。若每個元素出棧后立即進入隊列Q,且七個元素出隊的順序是{2,5,6,4,7,3,1},則棧S的容量至少是:

    A.1

    B.2

    C.3

    D.4

2-5.線性表、堆棧、隊列的主要區別是什么?

    A.線性表用指針,堆棧和隊列用數組

    B.堆棧和隊列都是插入、刪除收到約束的線性表

    C.線性表和隊列都可以用循環鏈表實現,但堆棧不能

    D.堆棧和隊列都不是線性結構,而線性表是

解析:A中它們都可以用指針和數組,C中線性表不可以用循環列表實現,D中線性表是線性結構

 


免責聲明!

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



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