資料結構在高程考試中占有很大的比例,掌握好資料結構,對於程式設計人員來說無疑是內功的修煉。資料結構主要有三個方面的內容:資料的邏輯結構;資料的物理儲存結構;對資料的操作(或演算法)。通常,演算法的設計取決於資料的邏輯結構,演算法的實現取決於資料的物理儲存結構。邏輯結構有四種基本型別:集合結構、線性結構、樹狀結構和 網路 結構。表和樹是最常用的兩種高效資料結構,許多高效的演算法可以用這兩種資料結構來設計實現。表是線性結構的(全序關係),樹(偏序或層次關係)和圖(區域性有序)是非線性結構。掌握線性表、多維陣列、陣列、棧、樹、二叉樹,圖的定義、儲存和操作以及常見的排序和查詢演算法。重點是二叉樹和圖以及與其相關的演算法。對資料結構的複習要求面面俱到,大家應該對教材的每一點都掌握。
1.關鍵路徑是指aoe(activity on edge)網中________。
a. 最長的迴路 b. 最短的迴路
c. 從源點到匯點(結束頂點)的最長路徑
d. 從源點到匯點(結束頂點)的最短路徑
答案:c
解析:aoe網是乙個有向圖,通常用來估算工程的完成時間,圖中的頂點表示事件,有向邊表示活動,邊上的權表示完成這一活動所需的時間。aoe網沒有有向迴路,存在唯一的入度為零的開始頂點,及唯一的出度為零的結束頂點。對aoe網最關心的兩個問題:完成整個工程至少需要多少時間?那些活動是影響工程進度的關鍵?這就引出兩個概念:關鍵路徑和關鍵活動。從開始頂點到結束頂點的最長路徑是關鍵路徑,路徑的長度也是工程完成的最少時間。關鍵路徑上的所有活動是關鍵活動,關鍵活動的最大特徵是:該活動的最早開始時間等於該活動所允許的最遲開始時間。關鍵活動拖延時間,整個工程也要拖延時間。求關鍵路徑只需求出起點到終點的最長路徑即可,注意關鍵路徑不是唯一的。
2.以下序列中不符合堆定義的是________。
a.(102,87,100,79,82,62,84,42,22,12,68)
b.(102,100,87,84,82,79,68,62,42,22,12)
c.(12,22,42,62,68,79,82,84,87,100,102)
d.(102,87,42,79,82,62,68,100,84,12,22)
答案:d
解析:判斷堆的辦法就是把序列看成是一棵完全二叉樹,若樹中的所有非終端結點的值均不大於(或不小於)其左右孩子的結點的值,則該序列為堆。
3.乙個具有767個結點的完全二叉樹,其葉子結點個數為____。
a. 383 b. 384 c. 385 d. 386
答案:b
解析:可以根據公式進行推導,假設n0是度為0的結點總數(即葉子結點數),n1是度為1的結點總數,n2是度為2的結點總數,由二叉樹的性質可知:n0=n2+1,則n= n0+n1+n2(其中n為完全二叉樹的結點總數),由上述公式把n2消去得:n= 2n0+n1-1,由於完全二叉樹中度為1的結點數只有兩種可能0或1,由此得到n0=(n+1)/2或n0=n/2,合併成乙個公式:n0=?(n+1)/2 ?,就可根據完全二叉樹的結點總數計算出葉子結點數。本題計算得:384。
4.若乙個具有n個結點、k條邊的非連通無向圖是乙個森林(n>k),則該森林中必有____棵樹。
a. k b. n c. n-k d. n+k
答案:c
解析:假設該森林中有s棵樹:t1,t2,……,ts ,且每個ti有ni 個結點,ki條邊(i=1,2,……,s),由樹的等價條件可知: ki=ni-1,則k=k1+k2+……+ks=(n1-1)+(n2-1)+……+(ns-1)=n-s,故s=n-k,所以該森林中必有n-k棵樹。
5. 將兩個長度為 n 的遞增有序表歸併成乙個長度為 2n 的遞增有序表,最少需要進行關鍵字比較____次。
a. 1 b. n-1 c. n d. 2n
答案:c
解析:考生首先要明白兩個前提:一是要歸併的兩個表都是遞增有序的且長度都為n,二是題目問的是最少的關鍵字比較次數,即最好的情況下的比較次數。而最好的情況應該是:乙個表的所有關鍵字都大於(或小於)另乙個表的所有關鍵字,如:(1 2 3 4)與(5 6 7 8)。比較的時候有兩個指標分別指向兩個表的第乙個元素,由於乙個表的關鍵字要都大於另乙個表的關鍵字,所以關鍵字小的表中的元素挨個與關鍵字大的表的第乙個元素比較後,先被併入到新錶中,這時關鍵字大的表的指標還是指向第乙個元素沒變,此時只需將關鍵字大的表複製到新錶中即可。所以花費的比較次數就是關鍵字小的表長,也就是n。
6.已知aoe網中頂點v1~v7分別表示7個事件,弧al~a10分別表示10個活動,弧上的數值表示每個活動花費的時間,如下圖所示。那麼,該網的關鍵路徑的長度為__(1)__,活動a6的鬆馳時間(活動的最遲開始時間-活動的最早開始時間)為__(2)__。
(1) a. 7 b. 9 c. 10 d. 11
(2) a. 3 b. 2 c. 1 d. 0
軟體設計師 資料結構
資料結構是指資料元素的集合及元素間的相互關係和構造方法。元素之間相互關係是資料的邏輯結構,資料元素及元素之間關係的儲存稱為儲存結構。資料結構是演算法設計的基礎,設計合理的資料結構可使演算法簡單高效。資料結構按邏輯關係分為線性結構和非線性結構。非線性結構又可分為樹結構和圖結構。一 線性結構 線性結構的...
軟體設計師考試準備篇
1 考試證書是計算機專業方面的學生對於大學所學到東西的一種憑證。2 希望自己的簡歷更漂亮些和自己畢業之後得到更好的工作職位。1 時間緊,五月二十五號考試自己今天才開始做準備 2 自己知識不足,由於在學校自己對自己比較放鬆許多該學的東西自己都沒有學到手 1 自己借了兩本書 軟體設計師教程 陳平 禇華主...
軟體設計師資料結構之線性結構複習小結
1.1 線性表的定義 乙個線性表是n n 0 個元素的有限序列,通常表示為 a1,a2,a3 an 非空線性表的特點如下 1 存在唯一的表頭和表尾 2 除第乙個元素外,序列中的每個元素均只有乙個直接前驅。3 除最後乙個元素外,序列中的每個元素均只有乙個直接後驅。1.2 線性表的儲存結構 線性表的儲存...