考試時間1小時
一、判斷題
1-1所謂「迴圈佇列」是指用單向迴圈鍊錶或者迴圈陣列表示的佇列。
(2分)tf
答案:f
1-2在具有n個結點的單鏈表中,訪問結點和增加結點的時間複雜度分別對應為o(1)和o(n)。
(3分)tf
答案:f
1-3如果無向圖g必須進行兩次廣度優先搜尋才能訪問其所有頂點,則g一定有2個連通分量。
(3分)tf
答案:t
1-4演算法分析的兩個主要方面是時間複雜度和空間複雜度的分析。
(2分)tf
答案:t
1-5一棵有124個結點的完全二叉樹,其葉結點個數是確定的。
(3分)tf
答案:t
1-6若一棵平衡二叉樹的所有非葉結點的平衡因子都是0,則其必為完美二叉樹。
(3分)tf
答案:t
1-7若乙個結點是某二叉樹的中序遍歷序列的最後乙個結點,則它必是該樹的前序遍歷序列中的最後乙個結點。
(3分)tf
答案:f
1-8用鄰接表法儲存圖,占用的儲存空間數隻與圖中結點個數有關,而與邊數無關。
(3分)tf
答案:f
1-9通過對堆疊s操作:push(s,1), push(s,2), pop(s), push(s,3), pop(s), pop(s)。輸出的序列為:123。
(3分)tf
答案:f
1-10
在一棵二叉搜尋樹上查詢63,序列39、101、25、80、70、59、63是一種可能的查詢時的結點值比較序列。
(3分)tf
答案:f儲存
二、選擇題
2-1在將資料序列( 6, 1, 5, 9, 8, 4, 7 )建成大根堆時,正確的序列變化過程是:
(4分)
a.6,9,5,1,8,4,7 → 9,6,5,1,8,4,7 → 9,6,7,1,8,4,5 → 9,8,7,1,6,4,5
b.6,1,7,9,8,4,5 → 6,9,7,1,8,4,5 → 9,6,7,1,8,4,5 → 9,8,7,1,6,4,5
c.6,9,5,1,8,4,7 → 6,9,7,1,8,4,5 → 9,6,7,1,8,4,5 → 9,8,7,1,6,4,5
d.6,1,7,9,8,4,5 → 7,1,6,9,8,4,5 → 7,9,6,1,8,4,5 → 9,7,6,1,8,4,5 → 9,8,6,1,7,4,5
答案:b
2-2設一段文字中包含4個物件,其出現次數相應為,則該段文字的哈夫曼編碼比採用等長方式的編碼節省了多少位數?
(4分)
a.0b.5
c.2d.4
答案:c
2-3若某圖的深度優先搜尋序列是,則下列哪個圖不可能對應該序列?
(4分)
答案:a
2-4設一棵非空完全二叉樹 t 的所有葉節點均位於同一層,且每個非葉結點都有 2 個子結點。若 t 有 k 個葉結點,則 t 的結點總數是:
(4分)
a.2k−1
b.2k−1
c.2k
d.k2
答案:a
2-5在並查集問題中,已知集合元素0~8所以對應的父結點編號值分別是(注:−n表示樹根且對應集合大小為n),那麼將元素6和8所在的集合合併(要求必須將小集合並到大集合)後,該集合對應的樹根和父結點編號值分別是多少?
(4分)
a.4和-5
b.8和-5
c.8和-6
d.1和-6
答案:a
2-6迴圈順序佇列中是否可以插入下乙個元素()。
(4分)
a.只與陣列大小有關,與隊首指標和隊尾指標的值無關
b.與曾經進行過多少次插入操作有關
c.與隊頭指標和隊尾指標的值有關
d.只與隊尾指標的值有關,與隊頭指標的值無關
答案:c
2-7已知表頭元素為c的單鏈表在記憶體中的儲存狀態如下表所示:
答案:a
2-8下列函式中,哪個函式具有最慢的增長速度:
(4分)
a.n1.5
b.n2logn
c.n(logn)2
d.nlogn2
答案:d
2-9三叉樹中,度為1的結點有5個,度為2的結點3個,度為3的結點2個,問該樹含有幾個葉結點?
(4分)
a.10
b.8c.13
d.12
答案:b
2-10
要判斷乙個整數n(>10)是否素數,我們需要檢查3到√n之間是否存在奇數可以整除n。則這個演算法的時間複雜度是:
(4分)
a.o(√n)
b.o(0.5logn)
c.o(n/2)
d.o(√nlogn)
答案:a
2-11
假設有5個整數以1、2、3、4、5的順序被壓入堆疊,且出棧順序為3、5、4、2、1,那麼為了獲得這樣的輸出,堆疊大小至少為:
(4分)
a.4b.3
c.5d.2
答案:a
2-12
先序遍歷圖示二叉樹的結果為
(4分)
a.a,b,c,d,h,e,i,f,g
b.h,i,d,b,e,f,g,a,c
c.h,d,i,b,e,a,f,c,g
d.a,b,d,h,i,e,c,f,g
答案:d
三、程式填空題
5-1下列**的功能是返回帶頭結點的單鏈表l的逆轉鍊錶。
list reverse( list l )
l->next=new_head
(6分);
return l;
時間限制
400 ms
記憶體限制
64 mb
5-2
下列**的功能是將大頂堆h中指定位置p上的元素的整數鍵值上調d個單位,然後繼續將h調整為大頂堆。
void increasekey( int p, int d, priorityqueue h )
作者ds課程組
單位浙江大學
時間限制
400 ms
記憶體限制
浙大資料結構與演算法慕課隨手記 第二講 線性結構
例 一元多項式及其運算 方法1 順序儲存直接表示 陣列,浪費空間 方法2 順序儲存非零項 結構陣列,係數,指數 二元組,按指數大小有序儲存 方法3 鍊錶儲存非零項 定義兩個資料域 多項式表示問題啟示 1.同乙個問題有不同表示 儲存方法 陣列or鍊錶 2.共性問題 有序線性序列的組織與管理 線性表 同...
浙大資料結構與演算法慕課隨手記 第三講 樹(上)
分層次組織管理效率更高 資料管理基本操作 查詢 靜態查詢 陣列 方法1 順序查詢 哨兵值 o n 方法2 二分查詢 有序 連續儲存,left right mid,一般是向下取整 o logn 二分查詢的啟示 判定樹 1.每個結點的查詢次數 該結點所在層數 2.查詢次數 判定樹的深度 3.n個結點判定...
浙大資料結構 單鏈表逆轉
6 8 單鏈表逆轉 20 分 本題要求實現乙個函式,將給定的單鏈表逆轉。list reverse list l 其中list結構定義如下 typedef struct node ptrtonode struct node typedef ptrtonode list 定義單鏈表型別 l是給定單鏈表,...