資料結構 習題 綜合複習

2021-10-07 16:21:57 字數 3137 閱讀 3606

1.從乙個長度為n的順序表中刪除第i個元素(1<= i <= n)時,需向前移動 (n - i)個元素。

2.對於乙個具有n個頂點的無向連通圖,它包含的連通分量的個數為( 1 )。

在無向圖g中,若從頂點vi到頂點vj有路徑(當然從vj到vi也一定有路徑),則稱 vi和vj 是聯通的。若v(g)中任意兩個不同的頂點vi 和vj都聯通(即有路徑),則稱g為連通圖。

無向圖的極大聯通子圖稱為g的聯通分量。任何連通圖的聯通分量只有乙個,即是其自身。

3.此演算法的時間複雜度是( o (m*n))

for

(i =

0; i < m ; i++

)for

(j =

0; j < n ; j++

)a[i]

[j]= i*j ;

4.對線性表進行二分查詢時,要求線性表必須:

5.等概率查詢時,採用順序查詢方法查詢長度為 n 的線性表時,每個元素的平均查詢長度為

(n+1)/2

6.由二叉樹的前序和中序遍歷中序和後序遍歷,可以唯一確定一棵二叉樹。

7.就平均時間而言,下列排序方法中最差的一種是:(d)

a.堆排序 最壞時間複雜度:o(n log 2(n))

b.快速排序 平均時間複雜度:o(n log 2(n))

c.希爾排序

d.直接選擇排序平均時間複雜度:o(n2)

bubblesort (r)

//從下往上(從後往前)掃瞄的起泡排序

rectype r;

if(noswsp)

break

;//本趟排序中未發生交換,則終止演算法}}

//bubblesort

j 的取值範圍確定:

① i<= j<= n-1

② i<= j+1 <= n-1 聯立這兩個方程組,得到取值範圍:i <= j <= n-2

起泡排序穩定。

2.快速排序:(效率最高)是目前基於內部排序中速度最快的排序方法

最壞的時間複雜度是:o(n2)

最好的時間複雜度是:o(n log 2(n))

平均時間複雜度:o(n log 2(n))

快速排序不穩定。

8.若某演算法核心操作的頻度 f (n)= 6n2 + 9 n , 則此演算法的時間複雜度為 o(n2)

9.已知字典為(33,50,66,73,181,200,202,350),採用二分檢索法檢索200,則依次比較的元素是:73,200.

這題有8個元素,所以從第8/2=4個元素開始檢索,73<200,故從181~305這段比較,這段有4個元素,所以從第4/2=2個元素比較,第二個元素剛好是200,檢索成功!

如果是奇數,從第 (n+1) / 2 個元素開始比較。

10.恰好有 n(n-1)/2 條邊的無向圖稱為無向完全圖,

恰有 n(n-1) 條邊的有向圖稱為有向完全圖。

11.演算法分析的目的是:分析演算法的效率以求改進。

12.線性鍊錶不具有的特點是:隨機訪問。

13.在乙個單鏈表中,若p所指結點之後插入乙個結點s,則執行

s->next=p->next;  p->next=s;
14.假若一組記錄的排序碼為(46,79,56,38,40,84),則利用快速排序的第一趟結果為: 40,38,46,56,79,84

40 79 56 38 46 84

40 46 56 38 79 84

40 38 56 46 79 84

40 38 46

56 79 84 (最終第一趟結果)

15、若線性表最常用的操作是在最後乙個元素之後插入乙個元素和刪除第乙個元素,則採用 _________儲存方法效率最好。

帶尾指標的單迴圈鍊錶

16、二叉排序樹的中序 (對稱)遍歷,可以得到二叉排序樹的關鍵碼的公升序排列。

17.用鏈結方式儲存的佇列,在進行插入運算時________

頭、尾指標可能都要修改(前插操作和後插操作)

18.設有乙個二維陣列a[m][n],假設a[0][0]存放位置在676 (10進製),a[2][2]存放位置在676(10進製),每個元素佔乙個空間,問a[3][3] 存放在什麼位置?

19.如果乙個演算法的時間複雜度為(n3+n2log2(n)+14n)/n2,其數量級表示為:o(n)

20.設哈夫曼樹中的葉子結點總數為m,若用二叉鍊錶作為儲存結構,則該哈夫曼樹中總共有 2m 個空指標域。

21.設某有向圖中有n個頂點,則該有向圖對應的鄰接表中有 n個表頭結點。

22.為了能有效地應用hash查詢技術,必須解決的兩個問題是:

①構造乙個好的hash函式

23.設某棵二叉樹中度數為0的結點數為n0,度數為1的結點數為n1,則該二叉樹中度數為2的結點數為n0-1;

若採用二叉鍊錶作為該二叉樹的儲存結構,則該二叉樹中共有2n0+n1個空指標域。

計算過程:此二叉樹的總結點數為n0+n1+n0-1 = 2n0+n1-1 ,所以有2*(2n0+n1-1)= 4n0+2n1-2 個指標域,其中只有2n0+n1-2個用來指示結點的左右孩子,其餘的【(4n0+2n1-2) - (2n0+n1-2) = 2n0+n1】個指標域為空。

24.設指標變數p指向單鏈表中結點a,若刪除結點a,則需要修改的指標的操作序列為:

q=p->next;

p->data=q->data;

//因為q要刪掉,所以只要把q的資料域交換過來

p->next=q->next;

free

(q);

二叉排序樹 就是 二叉檢索樹 。 這題是正確的,要特別注意。(我們考試的時候考到了這個判斷題,我寫錯了,老師剛剛跟我們說。我留下了不學無術的淚水,希望大家引以為鑑)

實驗:

資料結構複習題綱

最近把近期的部落格和生活中的一些瑣事進行了整理和歸納,從現在起,開始著手準備資料結構的複習了。同時做一些筆記與大家共同分享 進步!感謝大家的支援!記得點讚啦!第二章 鍊錶 第三章 棧和佇列 對特定問題求解步驟的一種描述,它是指令的有限序列,其中每一條指令表示乙個或多個操作 此外,乙個演算法還具有下列...

資料結構複習題(二)

一 選擇題 24分 1 下面關於線性表的敘述錯誤的是 a 線性表採用順序儲存必須占用一片連續的儲存空間 b 線性表採用鏈式儲存不必占用一片連續的儲存空間 c 線性表採用鏈式儲存便於插入和刪除操作的實現 d 線性表採用順序儲存便於插入和刪除操作的實現 2 設哈夫曼樹中的葉子結點總數為m,若用二叉鍊錶作...

資料結構複習題(五)

一 選擇題 20分 1 資料的最小單位是 a 資料項 b 資料型別 c 資料元素 d 資料變數 2 設一組初始記錄關鍵字序列為 50,40,95,20,15,70,60,45 則以增量d 4的一趟希爾排序結束後前4條記錄關鍵字為 a 40,50,20,95 b 15,40,60,20 c 15,20...