數據結構與算法測試題

1.完全二叉樹的第5層有9個節點,該完全二叉樹總計有多少個節點(  B   ).

A.41 B.24 C.40 D.25

完全二叉樹,說明前四層都是滿結點,第五層有九個結點,故有:

2^4  -1=15       15+9=24

2.具有21個頂點的無向圖至少有多少條邊才能形成連通圖               (  B   ).

A.21 B.20 C.22 D.210

3.假設以行序爲主序存儲二維數組A=array[1..40,1..80],設每個數據元素佔2個存儲單元,基地址LOC[1,1]爲8900,則LOC[21,14]的存儲位置爲(  B    ).

A.12288 B.12126 C.12286 D.12128

二維數組A[1..m,1..n]若按行優先存儲,那麼A的任意一個元素A[i][j]的存儲首地址Loc(i,j)可由下式確定:Loc(i,j)=Loc(1,1)+[n×(i-1)+j-1]×b,其中,Loc(1,1)是第一個元素A[1][1]的首地址,b是每個元素佔用的存儲單元個數。代入數據便得Loc(21,14)=8900+[80×(21-1)+14-1]×2=12126。

4.完全二叉樹順序存儲,結點X的編號爲27,則其右孩子結點的編號是(  A   )

A.55 B.54 C.28 D.26

參考P159性質5

5.具有11個結點的二叉樹使用二叉鏈表進行存儲,其中空指針的數目是(  B   ).

A.22 B.12 C.10 D.55

n個結點的二叉鏈表中,有2n個鏈域,每一條非空鏈域對應一條樹枝,而樹支的個數爲n-1,空節點個數爲2n-(n-1)=n+1

6.一棵二叉樹,度爲2結點數爲174,度爲1結點數爲186,則葉子結點數爲(   C  ).

A.187 B.173 C.175 D.185

    n0=n2+1=174+1=175

7.已知序列3,16,33,37,57,65,66,83,85,100,112,則用折半查找法查找3需要進行( B   )次比較.

A.1 B.3 C.2 D.4

①定義3個用來記錄索引值的變量,變量min記錄當前範圍最小索引值,初始值爲0;變量max記錄當前範圍最大索引值,初始值爲數組長度-1;變量mid記錄當前當前範圍最中間元素的索引值,初始值爲(min+max) / 2

②使用循環,判斷當前範圍下,最中間元素值與指定查找的數值是否相等

若相等,結束循環,返回當前範圍最中間元素的索引值mid

若不相等,根據比較結果,縮小查詢範圍爲上一次查詢範圍的一般

      中間元素值比要查詢的數值大,說明要查詢的數值在當前範圍的最小索引位置與中間索引位置之間,此時,更新查詢範圍爲:

      範圍最大索引值 = 上一次中間索引位置 -1;

      中間元素值比要查詢的數值小,說明要查詢的數值在當前範圍的最大索引位置與中間索引位置之間,此時,更新查詢範圍爲:

      範圍最小索引值 = 上一次中間索引位置 +1;

      在新的查詢範圍中,更新中間元素值的位置,再次使用最中間元素值與指定查找的數值是否相等。

      中間索引值 = (範圍最小索引值 +範圍最大索引值) / 2;

③每次查詢範圍縮小一半後,使用if語句判斷,查詢範圍是否小於0個元素,若小於0個元素,則說明指定數值沒有查詢到,返回索引值-1。

mid分別指向65,33,3

8.有28個葉子的哈夫曼樹的結點總數爲                           (   A  ).

A.55 B.56 C.57 D.783

哈夫曼樹,則度爲0的結點個數爲N,度爲2的結點個數爲N-1,則結點總數爲2N-1

9.具有47個頂點,1309條邊的有向圖,所有頂點度的和爲(  B   ).

A.1081 B.2618 C.94 D.1309

向圖和有向圖中每個頂點的度等於該頂點的入度與出度之和

總度數(D)等於邊數(e)的兩倍。D=2e

 

1.假設一顆二叉樹的先序序列爲ABDFHEGC,中序序列爲DFHBGEAC,請畫出該二叉樹。

 

2.給定關鍵字查找序列:8,96,82,33,36,56,58,58,73 ,請構造二叉排序樹。

 

3.有向圖如下所示,畫出其鄰接矩陣存儲(包括頂點存儲和索引).

 

有向圖:行爲出度,列爲入度

 

4.對如下圖所示的AOE網絡,計算各事件(頂點)的最早開始時間和最遲開始時間。

 

最早發生時間:從前往後,前驅結點到當前結點所需時間,取最大值。

最遲發生時間:從後往前,後繼結點的最遲發生時間-邊權值,取最小值。

事件爲頂點,活動爲邊。

 

 

 

5.已知一個無向圖如下圖所示,要求用普里姆算法構造最小生成樹(從頂點A開始),畫出構造過程。

 

6.已知一組關鍵字{19,84,57,18,92,68,73,39},請畫出由該組關鍵字創建的大頂堆(畫出結果即可。

 

7.設給定關鍵字輸入序列爲{93,44,56,90,123,112,112,96},用散列法散列0-10的地址區。散列函數爲H(k)=(k)MOD 11,發生衝突時使用二次探測再散列。請構造哈希表,並將結果填入下表。

 

線性探測再散列

 

0

1

2

3

4

5

6

7

8

9

10

key

44

56

90

123

112

93

 

 

96

 

 

frequency

1

1

1

2

3

1

 

 

1

 

 

ASL=(1+1+1+2+3+1+1)/7=10/7

二次探測再散列

 

0

1

2

3

4

5

6

7

8

9

10

key

44

56

90

123

 

93

112

 

96

 

 

frequency

1

1

1

2

 

1

4

 

1

 

 

ASL=(1+1+1+2+1+4+1)/7=11/7

8.設用於通信的電文由a、b、c、d、e、f、g、h 等8個字母組成, 字母在電文中出現的頻率分別爲:20,8,8,1,10,3,5,14。請構造哈夫曼樹,並給每出每個字母的哈夫曼編碼。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章