單元測驗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 線性鍊錶的刪除演算法簡...