一、選擇題(每小題2分,共8分)
1. 若需要利用形參直接訪問實參,則應把形參變數說明為( )引數。
a. 指標 b. 引用
c. 值
2. 在乙個單鏈表hl中,若要在指標q所至結點的後面插入乙個由指標p所指向的結點,則執行()。
a. q->next=p->next; p->next=q;
b. p->next=q->next; q=p;
c. q->next=p->next; p->next=q;
d. p->next=q->next; q->next=p;
3. 在乙個順序佇列中,隊首指標指向對首元素的()位置。
a. 後乙個 b. 前乙個
c. 當前
4.向二叉搜尋樹中插入乙個元素時,其時間複雜度大致為( )。
a. o(long2n) b. o(n)
c. o(1) d. o(nlong2n)
二.、填空題(每空1分,共同社2分)
1. 資料的儲存結構被分為_______________,________________,_______________和______________四種。
2. 對於乙個順序儲存的線性表,在表頭插入元素的時間複雜度為______________, 在表尾插入元素的時間複雜
度為_______________。
3. 在稀疏矩陣所對應的三遠組線性表中,每個三元組元素按______________為主序,_______________為輔序
的次序排列。
4. 在廣義表的儲存結構中,單元表結點與表元素結點有乙個域對應不同,各自分別為_______________域和_______________域。
5. 中級表示式3+x*(2.4/5-6)所對應的字尾表示式為_________________。
6. 在一棵高度為h的3叉樹中,最多含有_______________結點。
7. 假定一棵二叉樹的結點數為18,則它的最小深度為_______,最大深度為______。
8. 在一課二叉樹搜尋中,每個分支結點的左子樹上所有的結點的值一定______該結點的值,右子樹上所有的結
點的值一定_____該結點的值。
9. 當向乙個小根堆插入乙個具有最小值的元素時,該元素需要逐層______調整,知道被調整到______位置為止。
10. 表示圖的三種儲存結構為________________,_________________和_________________。
11. 對用鄰接矩陣表示的具有n個定點和e條邊的圖進行任一種遍歷時,其時間複雜度為__________,對用鄰接
表表示的圖進行任一種遍歷時,其時間複雜度為______________。
12. 從有序表(12,18,30,43,56,78,82,95)中依次二分查詢43和56元素時,其查詢長度分別為______和______。
13. 假定對長度n=144的線性表進行索引查詢,並假定每個子表的長度均為 ,則進行索引查詢的平均查詢長度
為_______,時間複雜度為________________。
14. 一棵b_樹中的所有葉子結點均處在_______________上。
15. 每次從無序表中順序取出乙個元素,把它插入到有序表中的適當位置,此種排序方法叫做______排序;每
次從無序表中挑選出乙個最小或最大元素,把它交換到有序表的一端,此種排序方法叫做______排序。
16. 快速排序在平均情況下的時間複雜度為________________,在最環情況下的時間複雜度為
三.、運算題(每小題6分,共24分)
1. 假定一棵普通樹的廣義表表示a(b(e),c(f(h,i),g),d),分別寫出先根、後根、按層遍歷的結果。
先根:後根:
按層:2. 已知乙個帶全圖的定點集v和邊集g分別為:
v=;e=;
則求出該圖的最小生成樹的權。
最小生成樹的泉:
3. 對於線性表(18,25,63,50,41,32,90,66)進行三列儲存時,若選用h(k)=k%11作為雜湊函式,則散
列位址為0的元素有______個,雜湊位址為3的元素有______個,雜湊位址為8的元素有______個。
4. 假定一組紀錄的排序碼為(46,79,56,38,40,80,25,34),在對其進行快速排序的過程中,進行第
一次劃分後得到的排序碼序列為。
四、閱讀演算法,回答問題(每小題8分,共16分)
1. void ad(lnode*&hl)
假定呼叫該演算法時以hl為表頭指標的單鏈表中的內容為(15,26,48,55),則呼叫返回後該單鏈表中的內容變為:
2. void ai(adjmatrixga,int i,int n)
else if(itemdata)____________________________________;
else_________________________________________;
}六. 編寫演算法(10分)
編寫向型別為list的線性表l中第i個元素為值插入乙個元素的演算法,假定不需要對i的值進行有效性檢查,同時不需要檢查儲存空間是否用完。
void insert(list&l,int i,elemtype x)
完答案:一、 單選題
1、b.2、d.3、b.4、a
二、 填空
1、 順序結構、鏈結結構、索引結構、雜湊結構(次序無先後)
2、 o(n)、o(1)
3、 行號、列號
4、 值(或data)、子表指標(或sublist)
5、 3x2.45/6-*+
6、 (3h-1)/2
7、 5 18
8、 小於 大於
9、 向上 堆頂
10、鄰接矩陣 鄰接表 邊集陣列(次序無先後)
11、o(n2) o(e)
12、1 3
13、13 o( )
14、同一層
15、插入 選擇
16、o(nlog2n) o(n2)
三、 運算題
1、 先根:a,b,e,c,f,h,i,g,d;
後根:e,b,h,i,f,g,c,d,a;
按層:a,b,c,d,e,f,g,h,i;
2、 最小生成樹的權:34
3、 1 1 2 每個資料佔2分
4、 (40 ,34 ,25,38,46,80,56,79)
四、 閱讀演算法,回答問題。
1、(15,30,48,50)
2、從初始點vi出發深度優先搜尋遍歷由鄰接矩陣ga所表示的圖。
五、 演算法填空,在畫有橫線的地方填寫合適的內容。
p->left=p->right=null
insert(bst->left,item)
insert(bst->right,item)
六、 編寫演算法
void insert(list&l,int i ,elemtype x)
資料結構筆試題
一 如何判斷乙個單鏈表是有環的?注意不能用標誌位,最多只能用兩個額外指標 struct node bool check const node head return false 無環 true 有環 一種o n 的辦法就是 搞兩個指標,乙個每次遞增一步,乙個每次遞增兩步,如果有環的話兩者必然重合,反...
資料結構筆試題目
1 c 編成求二叉樹的深度 int bintreedepth link head 2 排序二叉樹插入乙個節點或雙向鍊錶的實現 排序二叉樹 左小於根,根小於右。左右又分別是排序二叉樹。前序遍歷 根左右 中序遍歷 左根右 後序遍歷 左右根 排序二叉樹插入乙個結點 大於左,往右找,小於右往左找,遞迴實現。...
筆試題之資料結構
時間複雜度 整個演算法的執行時間與基本操作重複執行的次數成正比。參考kmp演算法,該演算法的時間複雜度為q n 通常,模式串的長度n比主串的長度m要小的多 穩定排序 排序前後,數值的相對前後位置不變的為穩定排序,否則為不穩定排序。1 簡單排序,時間複雜度o n的平方 不穩定 2 快速排序,時間複雜度...