客觀題:
1、已知無向圖 G 如下所示,使用克魯斯卡爾(Kruskal)演算法求圖 G 的最小生成樹,加入到最小生成樹中的邊依次是:
A、(b,f), (b,d), (a,e), (c,e), (b,e)
B、(b,f), (b,d), (b,e), (a,e), (c,e)
C、(a,e), (b,e), (c,e), (b,d), (b,f)
D、(a,e), (c,e), (b,e), (b,f), (b,d)
2、圖的深度優先遍歷類似於二叉樹的先序遍歷
3、我們用一個有向圖來表示航空公司所有航班的航線。下列哪種演算法最適合解決找給定兩城市間最經濟的飛行路線問題Dijkstra演算法
4、圖的廣度優先遍歷類似於二叉樹的層次遍歷
5、已知一個圖的鄰接矩陣如下,則從頂點V1出發按深度優先搜尋法進行遍歷,可能得到的一種頂點序列為:
6、如果G是一個有28條邊的非連通無向圖,那麼該圖頂點個數最少為多少?9;
7、使用迪傑斯特拉(Dijkstra)演算法求下圖中從頂點1到其他各頂點的最短路徑,依次得到的各最短路徑的目標頂點是:
8、已知二叉樹的前序遍歷序列為 ABDCEFG,中序遍歷序列為 DBCAFEG,則後序遍歷序列為DCBFGEA;
9、在對N個元素進行排序時,基於比較的演算法中,其“最壞時間複雜度”中最好的是O(NlogN);
10、將{5, 2, 7, 3, 4, 1, 6}依次插入初始為空的二叉搜尋樹。則該樹的後序遍歷結果是1、4、3、2、6、7、5;
11、對一組資料{ 2,12,16,88,5,10 }進行排序,若前三趟排序結果如下: 第一趟排序結果:2,12,16,5,10,88 第二趟排序結果:2,12,5,10,16,88 第三趟排序結果:2,5,10,12,16,88 則採用的排序方法可能是氣泡排序;
12、就排序演算法所用的輔助空間而言,堆排序、快速排序、歸併排序的關係是堆排序<快速排序<歸併排序;
13、有組記錄的排序碼為{46,79,56,38,40,84 },採用快速排序(以位於最左位置的物件為基準而)得到的第一次劃分結果為40、38、46、56、79、84;
14、對於序列{ 49,38,65,97,76,13,27,50 },按由小到大進行排序,下面哪一個是初始步長為4的希爾排序法第一趟的結果?49、13、27、50、76、38、65、97;
15、給出關鍵字序列{ 431, 56, 57, 46, 28, 7, 331, 33, 24, 63 },下面哪個選擇是按次位優先(LSD)鏈式基數排序進行了一趟分配和收集的結果?——>431——>331->33->63->24->56->46->57->7->28;
16、排序方法中,從未排序序列中依次取出元素與已排序序列中的元素進行比較,將其放入已排序序列的正確位置的方法稱為插入排序;
17、對N個元素採用簡單選擇排序,比較次數和移動次數分別為O(N^2)、O(N);
18、平均查詢長度與結點個數無關的查詢方法是:利用雜湊(雜湊)表;
19、設雜湊表的地址區間為[0,16],雜湊函式為H(Key)=Key%17。採用線性探測法處理衝突,並將關鍵字序列{ 26,25,72,38,8,18,59 }依次儲存到雜湊表中。元素59存放在雜湊表中的地址是:11;
20、假定有K個關鍵字互為同義詞,若用線性探測法把這K個關鍵字存入雜湊表中,至少要進行多少次探測?K(K+1)/2;
21、將元素序列{18,23,11,20,2,7,27,33,42,15}按順序插入一個初始為空的、大小為11的雜湊表中。雜湊函式為:H(Key)=Key%11,採用線性探測法處理衝突。問:當第一次發現有衝突時,雜湊表的裝填因子大約是多少?0.45;
22、給定雜湊表大小為17,雜湊函式為H(Key)=Key%17。採用平方探測法處理衝突:hi(k)=(H(k)±i2)%17將關鍵字序列{ 6, 22, 7, 26, 9, 23 }依次插入到雜湊表中。那麼元素23存放在雜湊表中的位置是:2;
23、在雜湊表中,所謂同義詞就是:具有相同雜湊地址得兩個元素;
24、將 {5, 2, 7, 3, 4, 1, 6} 逐個按順序插入到初始為空的最小堆(小根堆)中。則該樹的前序遍歷結果為:1、3、5、4、2、7、6;
25、已知二叉樹的先序遍歷序列為ABCDEFGH,中序遍歷序列為CBEDFAGH,則該二叉樹形態中,父節點的右子節點為:G;
26、已知8個資料元素為(34,76,45,18,26,54,92,65),按照依次插入結點的方法生成一棵二叉搜尋樹後,最後兩層上的結點總數為:2;
27、將下列數(88, 70, 61, 96, 120, 90)按順序插入初始為空的AVL中,所形成的AVL樹的前序遍歷結果是:88、70、61、96、90、120;
28、在下列所示的平衡二叉樹中,插入關鍵字48後得到一棵新平衡二叉樹。在新平衡二叉樹中,關鍵字37所在結點的左、右子結點中儲存的關鍵字分別是:24和53
29、如果AVL樹的深度為5(空樹的深度定義為−1),則此樹最少有多少個結點?20;
30、將 26, 13, 44, 51, 98, 37, 66, 73 順序插入一棵初始為空的AVL樹。下列句子中哪句是錯的?
A、44 是根結點
31、具有65個結點的完全二叉樹其深度為(根的深度為1):7;
32、將數字 {10, 12, 1, 14, 6, 5, 8, 15, 3, 9, 7, 4, 11, 13, 2} 逐一插入一個初始為空的最小堆(小頂堆),得到的堆序列為:1、3、2、6、7、5、4、15、14、12、9、10、11、13、8;
33、設最小堆(小根堆)的層序遍歷結果為{1, 3, 2, 5, 4, 7, 6}。用線性時間複雜度的演算法將該堆調整為最大堆(大根堆),則該樹的中序遍歷結果為:3、5、4、7、2、6、1;
34、設一段文字中包含字元{a, b, c, d, e},其出現頻率相應為{3, 2, 5, 1, 1}。經哈夫曼編碼後,文字所佔位元組數為:25;
35、給定有權無向圖的鄰接矩陣如下,其最小生成樹的總權重是:14;
36、下圖為一個AOV網,其可能的拓撲有序序列為:
A、ACBDEF
B、ABCEFD
C、ABCDFE
D、ABCEDF
37、在AOE網中,什麼是關鍵路徑?D、從第一個事件到最後一個事件的最長路徑
38、給定有向圖的鄰接矩陣如下:頂點2(編號從0開始)的出度和入度分別是:0和2;
39、下圖所示的 AOE 網表示一項包含 8 個活動的工程。活動 d 的最早開始時間和最遲開始時間分別是:12和14;
40、給出如下圖所示的具有 7 個結點的網 G,採用Prim演算法,從4號結點開始,給出該網的最小生成樹。下列哪個選項給出了正確的樹結點收集順序?
A、4501362
B、4526301
C、4561023
D、4563201
41、給定有向圖如下。下列哪個選項不是對應的拓撲序列?
A、abedfc
B、aedbfc
C、aedfbc
D、abdfce
43、下面程式碼段的時間複雜度是O(log3n)
i=1;
while( i<=n )
i=i*3;
O(log3n)
44、陣列A[1..5,1..6]每個元素佔5個單元,將其按行優先次序儲存在起始地址為1000的連續的記憶體單元中,則元素A[5,5]的地址為:1140;
45、若某表最常用的操作是在最後一個結點之後插入一個結點或刪除最後一個結點。則採用哪種儲存方式最節省運算時間?
46、有六個元素以6、5、4、3、2、1的順序進棧,問哪個不是合法的出棧序列?B、3 4 6 5 2 1
47、表示式a*(b+c)-d的字尾表示式是:A、a b c + * d -
48、如果迴圈佇列用大小為m的陣列表示,且用隊頭指標front和佇列元素個數size代替一般迴圈佇列中的front和rear指標來表示佇列的範圍,那麼這樣的迴圈佇列可以容納的元素個數最多為:B、m
49、如果迴圈佇列用大小為m的陣列表示,隊頭位置為front、佇列元素個數為size,那麼隊尾元素位置rear為:
50、若已知一佇列用單向連結串列表示,該單向連結串列的當前狀態(含3個物件)是:1->2->3,其中x->y表示x的下一節點是y。此時,如果將物件4入隊,然後佇列頭的物件出隊,則單向連結串列的狀態是:B、2->3->4
51、若用大小為6的陣列來實現迴圈佇列,且當前front和rear的值分別為0和4。當從佇列中刪除兩個元素,再加入兩個元素後,front和rear的值分別為多少?2和0;
52、若棧採用順序儲存方式儲存,現兩棧共享空間V[m]:top[i]代表第i(i=1或2)個棧的棧頂;棧1的底在V[0],棧2的底在V[m-1],則棧滿的條件是:D、top[1]+1==top[2]
53、對於一非空的迴圈單連結串列,h和p分別指向連結串列的頭、尾結點,則有:A、p->next == h
54、在雙向連結串列儲存結構中,刪除p所指的結點,相應語句為:
C、p->prior->next=p->next;p->next->prior=p->prior;
55、給定一個堆疊的入棧序列為{ 1, 2, ⋯, n },出棧序列為{ p1, p2, ⋯, pn }。如果p2=n,則存在多少種不同的出棧序列?B、n-1
56、採用多項式的非零項鍊式儲存表示法,如果兩個多項式的非零項分別為N1和N2個,最高項指數分別為M1和M2,則實現兩個多項式相乘的時間複雜度是:A、
57、由分別帶權為9、2、5、7的四個葉子結點構成一棵哈夫曼樹,該樹的帶權路徑長度為:44;
58、若一棵二叉樹的前序遍歷序列是{ 4, 2, 1, 3, 6, 5, 7 },中序遍歷序列是{ 1, 2, 3, 4, 5, 6, 7 },則下列哪句是錯的?
A、這是一棵完全二叉樹 B、所有的奇數都在葉子結點上
59、已知字符集{ a, b, c, d, e, f, g, h }。若各字元的哈夫曼編碼依次是 0100, 10, 0000, 0101, 001, 011, 11, 0001,則編碼序列 0100011001001011110101 的譯碼結果是:D、afeefgd
60、一棵二叉樹中,雙分支結點數為15,單分支結點數為30,則葉子結點數為()個。16;
61、設最小堆(小根堆)的層序遍歷結果為{5, 18, 15, 28, 22, 42, 40}。用線性時間複雜度的演算法將該堆調整為最大堆(大根堆),則該樹的中序遍歷結果為:B、18, 28, 22, 42, 15, 40, 5
1、Kruskal 演算法是維護一個森林,每一步把兩棵樹合併成一棵。√
2、若圖G有環,則G不存在拓撲排序序列。√
3、用鄰接矩陣法儲存圖,佔用的儲存空間數只與圖中結點個數有關,而與邊數無關。√
4、在任一有向圖中,所有頂點的入度之和等於所有頂點的出度之和。√
5、如果無向圖G必須進行兩次廣度優先搜尋才能訪問其所有頂點,則G一定有2個連通分量。√
6、在一個有權無向圖中,若b到a的最短路徑距離是12,且c到b之間存在一條權為2的邊,則c到a的最短路徑距離一定不小於10。√
7、Prim 演算法是維護一個森林,每一步把兩棵樹合併成一棵。×
8、在具有N個結點的單連結串列中,訪問結點和增加結點的時間複雜度分別對應為O(1)和O(N)。×
9、如果從有向圖 G 的每一點均能通過深度優先搜尋遍歷到所有其它頂點,該圖一定不存在拓撲序列。√
10、僅基於比較的演算法能得到的最好的“最壞時間複雜度”是O(NlogN)。√
11、存在一棵總共有2016個結點的二叉樹,其中有16個結點只有一個孩子。×
12、若一個結點是某二叉樹的中序遍歷序列的最後一個結點,則它必是該樹的前序遍歷序列中的最後一個結點。×
13、某二叉樹的後序和中序遍歷序列正好一樣,則該二叉樹中的任何結點一定都無左孩子。×
14、若A和B都是一棵二叉樹的葉子結點,則存在這樣的二叉樹,其前序遍歷序列為...A...B...,而中序遍歷序列為...B...A...。×
15、要從50個鍵值中找出最大的3個值,選擇排序比堆排序快。√
16、對N個記錄進行快速排序,在最壞的情況下,其時間複雜度是O(NlogN)。×
17、希爾排序是穩定的演算法。×
18、任何二叉搜尋樹中同一層的結點從左到右是有序的(從小到大)。√
19、對N個不同的資料採用氣泡排序進行從大到小的排序,當元素基本有序時交換元素次數肯定最多。×
20、在一棵二叉搜尋樹上查詢63,序列39、101、25、80、70、59、63是一種可能的查詢時的結點值比較序列。×
21、在雜湊表中,所謂同義詞就是被不同雜湊函式對映到同一地址的兩個元素。×
22、在一棵由包含4、5、6等等一系列整數結點構成的二叉搜尋樹中,如果結點4和6在樹的同一層,那麼可以斷定結點5一定是結點4和6的父親結點。×
23、將M個元素存入用長度為S的陣列表示的雜湊表,則該表的裝填因子為M/S。√
24、對AVL樹中的任一結點,其左子樹的高度一定比其右子樹的高度要高。×
25、即使把2個元素雜湊到有100個單元的表中,仍然有可能發生衝突。√
26、如果由結點{ 1, 2, 3, 4 }組成的AVL樹的深度是3(根結點的深度是1),則結點2或者結點3一定有兩個子結點。√
27、若用平方探測法解決衝突,則插入新元素時,若雜湊表容量為質數,插入就一定可以成功。×
28、將一棵完全二叉樹存於陣列中(根結點的下標為1)。則下標為23和24的兩個結點是兄弟。×
29、任何最小堆中從根結點到任一葉結點路徑上的所有結點是有序的(從小到大)。√
30、對N(≥2)個權值均不相同的字元構造哈夫曼樹,則樹中任一非葉結點的權值一定不小於下一層任一結點的權值。√
31、哈夫曼編碼是一種最優的字首碼。對一個給定的字符集及其字元頻率,其哈夫曼編碼不一定是唯一的,但是每個字元的哈夫曼碼的長度一定是唯一的。×
32、無向連通圖至少有一個頂點的度為1。×
33、演算法分析的兩個主要方面是時間複雜度和空間複雜度的分析。√
34、演算法可以沒有輸入,但是必須有輸出。√
35、和具有相同的增長速度。√
36、是的。√ 37、和具有相同的增長速度。×
38、對於順序儲存的長度為N的線性表,訪問結點和增加結點的時間複雜度分別對應為O(1)和O(N)。√
39、若某線性表最常用的操作是存取任一指定序號的元素和在最後進行插入和刪除運算,則利用順序表儲存最節省時間。√
40、將N個資料按照從小到大順序組織存放在一個單向連結串列中。如果採用二分查詢,那麼查詢的平均時間複雜度是O(logN)。×
41、通過對堆疊S操作:Push(S,1), Push(S,2), Pop(S), Push(S,3), Pop(S), Pop(S)。輸出的序列為:123。×
42、若一個棧的輸入序列為1,2,3,…,N,輸出序列的第一個元素是i,則第j個輸出元素是j−i−1。×
43、所謂“迴圈佇列”是指用單向迴圈連結串列或者迴圈陣列表示的佇列。×
44、在用陣列表示的迴圈佇列中,front值一定小於等於rear值。×
45、對於順序儲存的長度為N的線性表,刪除第一個元素和插入最後一個元素的時間複雜度分別對應為O(1)和O(N)。×
46、若一個棧的輸入序列為{1, 2, 3, 4, 5},則不可能得到{3, 4, 1, 2, 5}這樣的出棧序列。√
47、若用連結串列來表示一個線性表,則表中元素的地址一定是連續的。×