資料結構單元4練習

2021-03-03 23:52:30 字數 4057 閱讀 8355

單元測驗4

一.判斷題(下列各題,正確的請在前面的括號內打√;錯誤的打╳ )

(√)(1)佇列是限制在兩端進行操作的線性表。

(√)(2)判斷順序隊列為空的標準是頭指標和尾指標都指向同乙個結點。

(╳)(3)在鏈佇列上做出隊操作時,會改變front指標的【值】所指向的位置或儲存空間。

(√)(4)在迴圈佇列中,若尾指標rear大於頭指標front,其元素個數為rear- front。

(╳)(5)在單向迴圈鍊錶中,若頭指標為h,那麼p所指結點為尾結點的條件是p->next=h。

(√)(6)鏈佇列在一定範圍內不會出現隊滿的情況。

(╳)(7)在迴圈鏈佇列中[無]有溢位現象。

(╳)(8)棧和佇列都是順序儲存的線性結構。不一定是順序儲存的

(╳)(9)在佇列中允許刪除的一端稱為隊【尾】頭。

(╳)(10)順序隊和迴圈隊關於【隊滿和】隊空的判斷條件是一樣的。隊滿的判斷條件不一樣

二.填空題

(1) 在佇列中訪問資料應遵循的原則是先進先出 。

(2) 佇列是被限定為只能在表的一端進行插入運算,在表的另一端進行刪除運算的線性表。

(3) 在佇列中,允許插入的一端稱為隊尾 。

(4) 在佇列中,允許刪除的一端稱為隊頭(或隊首

(5) 佇列在進行出隊操作時,首先要判斷佇列是否為空 。

(6) 順序佇列在進行入隊操作時,首先要判斷佇列是否為滿 。

(7) 順序佇列初始化後,front=rear= -1 。

(8) 解決順序佇列「假溢位」的方法是採用迴圈佇列 。

(9) 迴圈佇列的隊首指標為front,隊尾指標為rear,則隊空的條件為 front=rear

(10) 鏈佇列lq為空時,lq->front->next= null 。

(11) 設長度為n的鏈佇列用單迴圈鍊錶表示,若只設頭指標,則入隊操作的時間複雜度為 o(n) 。

(12) 設長度為n的鏈佇列用單迴圈鍊錶表示,若只設尾指標,則出隊操作的時間複雜度為 o(1) 。

(13) 在乙個鏈佇列中,若隊首指標與隊尾指標的值相同,則表示該隊列為空 。

(14) 設迴圈佇列的頭指標front指向隊首元素,尾指標rear指向隊尾元素後的乙個空閒元素,佇列的最大空間為maxlen,則隊滿標誌為: front==(rear+1)%maxlen

(15) 在乙個鏈佇列中,若隊首指標為front,隊尾指標為rear,則判斷該佇列只有乙個結點的條件為:front==rear && front !=null 。

( 或front==rear && front <>null

(16) 向乙個迴圈佇列中插入元素時,首先要判斷隊尾指標 ,然後再向指標所指的位置寫入新的資料。

(17) 讀隊首元素的操作不改變(或不影響) 佇列元素的個數。

(18) 設迴圈佇列的容量為40(序號從0到39),現經過一系列的入隊和出隊運算後,有 front=11,rear=19,則迴圈佇列中還有 8 個元素。 (l= (n+rear-front)% n=(40+19-11)% 40=8)

(19)佇列q,經過下列運算:initqueue(q)(初始化佇列);inqueue(q,a); inqueue(q,b);outqueue(q,x); readfront(q,x);qempty(q);後的值是 0 。

(20)佇列q經過initqueue(q)(初始化佇列);inqueue(q,a);inqueue(q,b); readfront(q,x)後,x的值是 a 。

三.選擇題

(1)佇列是限定在( d )進行操作的線性表。

a.中間b.隊首c.隊尾d.端點

(2)佇列中的元素個數是( b )。

a.不變的b.可變的 c.任意的d.0

(3)同一佇列內各元素的型別( a )。

a.必須一致b.不能一致 c.可以不一致 d.不限制

(4)佇列是乙個( c )線性表結構。

a.不加限制的 b.推廣了的c.加了限制的 d.非

(5)當利用大小為n的陣列順序儲存乙個佇列時,該佇列的最後乙個元素的下標為( b )。

a.n-2b.n-1c.nd.n+1

(6)乙個迴圈佇列一旦說明,其占用空間的大小( a )。

a.已固定 b.可以變動 c.不能固定 d.動態變化

(7)迴圈佇列占用的空間( a )。

a.必須連續b.不必連續 c.不能連續 d.可以不連續

(8)存放迴圈佇列元素的陣列data有10個元素,則data陣列的下標範圍是( b )。

a.0..10 b.0..9c.1..9d.1..10

(9)若進隊的序列為:a,b,c,d,則出隊的序列是( c )。

a.b,c,d,ab.a,c,b,d

c.a,b,c,dd.c,b,d,a

(10)四個元素按:a,b,c,d順序連續進隊q,則隊尾元素是( d )。

a. ab. b

c. cd. d

(11)四個元素按:a,b,c,d順序連續進隊q,執行一次outqueue(q)操作後,隊頭元素是( b )。

a. ab. bc. cd. d

(12)四個元素按:a,b,c,d順序連續進隊q,執行四次outqueue(q)操作後,再執行qempty(q);後的值是( b )。

a. 0b. 1c. 2d. 3

(13)佇列q,經過下列運算後,x 的值是( b )。

initqueue(q)(初始化佇列);inqueue(q,a); inqueue(q,b);outqueue(q,x);

readfront (q,x);

a.ab.bc.0d.1

(14)迴圈佇列sq隊滿的條件是( b )。

a.sq->rear==sq->frontb.(sq->rear+1)% maxlen ==sq->front

c.sq->rear==0d.sq->front==0

(15)設鏈棧中結點的結構:data為資料域,next為指標域,且top是棧頂指標。若想在鏈棧的棧頂插入乙個由指標s所指的結點,則應執行下列( a )操作。

a.s->next=top->next;top->next=s; b.top->next=s;

c.s->next=top;top=top->nextd.s->next=top;top=s;

(16)帶頭結點的鏈佇列lq示意圖如下,鏈佇列的隊頭元素是( a )

lq->front

lq->rear

a.ab.bc.cd.d

(17)帶頭結點的鏈佇列lq示意圖如下,指向鏈佇列的隊頭指標是( c )

lq->front

lq->rear

a.lq->frontb.lq->rear

c.lq->front->nextd.lq->rear->next

(18)帶頭結點的鏈佇列lq示意圖如下,在進行進隊運算時指標lq->front( a )

lq->front

lq->rear

a.始終不改變 b.有時改變 c.進隊時改變d.出隊時改變

(19)佇列q,經過下列運算後,再執行qempty(q) 的值是( c )。

initqueue(q) (初始化佇列);inqueue(q,a); inqueue(q,b);outqueue(q,x);

readqueue(q,x);

a.ab.bc.0d.1

(20)若用乙個大小為6的陣列來實現迴圈佇列,且當前front和rear的值分別為3和0,當從佇列中刪除乙個元素,再加入兩個元素後,front和rear的值分別為( b )。

a.5和1b.4和2c.2和4d.1和5

四. 寫出程式執行的結果

寫出下列程式段的輸出結果(佇列中的元素型別為char)。

void main( )

;printf(x);

}答:輸出為「char」。

資料結構單元練習

單元練習9 一 判斷題 下列各題,正確的請在前面的括號內打 錯誤的打 1 二分查詢法要求待查表的關鍵字值必須有序。2 對有序表而言採用二分查詢總比採用順序查詢法速度快。3 在二叉排序樹中,根結點的值都小於孩子結點的值。4 雜湊儲存法的基本思想是由關鍵字的值決定資料的儲存位址。5 雜湊表是一種將關鍵字...

資料結構單元練習

單元練習8 一 判斷題 下列各題,正確的請在前面的括號內打 錯誤的打 1 圖可以沒有邊,但不能沒有頂點。2 在無向圖中,v1,v2 與 v2,v1 是兩條不同的邊。3 鄰接表只能用於有向圖的儲存。4 乙個圖的鄰接矩陣表示是唯一的。5 用鄰接矩陣法儲存乙個圖時,所占用的儲存空間大小與圖中頂點個數無關,...

資料結構單元2練習

單元練習2 一 判斷題 下列各題,正確的請在前面的括號內打 錯誤的打 1 線性表的鏈式儲存結構優於順序儲存。2 鍊錶的每個結點都恰好包含乙個指標域。3 性表的鏈式儲存結構中,邏輯上相鄰的兩個元素在物理位置上並不一定緊鄰。4 順序儲存方式的優點是儲存密度大,插入 刪除效率高。5 線性鍊錶的刪除演算法簡...