版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、數(shù)據(jù)結構試卷(一)一、單選題(每題2分,共 20 分)1.棧和隊列的共同特點是( a)。A. 只允許在端點處插入和刪除元素B. 都是先進后出C. 都是先進先出D. 沒有共同點2. 用鏈接方式存儲的隊列,在進行插入運算時( d ).A.僅修改頭指針B.頭、尾指針都要修改C.僅修改尾指針D.頭、尾指針可能都要修改3. 以下數(shù)據(jù)結構中哪一個是非線性結構?( d )A.隊列B.棧C.線性表D.二叉樹4.設有一個二維數(shù)組A m n ,假設 A00存放位置在644(10) , A22存放位置在676(10) ,每個元素占一個空間,問A33(10) 存放在什么位置?腳注(10) 表示用10 進制表示。 cA
2、688B678C692D6965. 樹最適合用來表示 ( c )。A.有序數(shù)據(jù)元素B.無序數(shù)據(jù)元素C.元素之間具有分支層次關系的數(shù)據(jù)D. 元素之間無聯(lián)系的數(shù)據(jù)6. 二叉樹的第 k 層的結點數(shù)最多為 ( d ).A 2k -1B.2K+1C.2K-1D. 2 k-17. 若有 18 個元素的有序表存放在一維數(shù)組A19 中,第一個元素放 A1 中,現(xiàn)進行二分查找,則查找A3的比較序列的下標依次為(c)(改)A. 1,2,3B. 9 ,5,2,3C. 9,5,3D. 9 ,4,2,38.對 n 個記錄的文件進行快速排序,所需要的輔助存儲空間大致為cA. O( 1)B. O ( n)C. O( 1og
3、2n)D. O( n2)9. 對于線性表( 7, 34, 55, 25, 64,46, 20,10)進行散列存儲時,若選用H(K)=K %9 作為散列函數(shù),則散列地址為1 的元素有(d )個,A 1B 2C 3D 410. 設有 6 個結點的無向圖,該圖至少應有( a )條邊才能確保是一個連通圖。A.5B.6C.7D.8二、填空題(每空1 分,共 26分)1. 通常從四個方面評價算法的質量:_ 正確性 _、 _ 易讀性 _、 _強壯性_和_ 高效率 _。2. 一個算法的時間復雜度為 ( n3+n2log 2n+14n)/ n2,其數(shù)量級表示為 _0( n) _。3. 假定一棵樹的廣義表表示為A
4、( C, D(E, F, G), H( I , J),則樹中所含的結點數(shù)為_9_個,樹的深度為 _2_,樹的度 為_3_ 。4. 后綴算式 9 2 3 +- 10 2 / -的值為 _-1 _。中綴算式( 3+4X) -2Y/3 對應的后綴算式為 _3 4X * + 2Y *3 / -_。5. 若用鏈表存儲一棵二叉樹時, 每個結點除數(shù)據(jù)域外, 還有指向左孩子和右孩子的兩個指針。在這種存儲結構中,n 個結點的二叉樹共有_2n_個指針域,其中有_n-1 _個指針域是存放了地址,有_n+1_個指針是空指針。6.對于一個具有n 個頂點和 e 條邊的有向圖和無向圖,在其對應的鄰接表中,所含邊結點分別有
5、_e_個和 _2e_個。7. AOV網(wǎng)是一種 _有向無回路 _ 的圖。8.在一個具有 n 個頂點的無向完全圖中,包含有 _n(n-1)/2_條邊,在一個具有 n 個頂點的有向完全圖中,包含有 _n(n-1) _條邊。9.假定一個線性表為 (12,23,74,55,63,40),若按 Key % 4條件進行劃分,使得同一余數(shù)1的元素成為一個子表,則得到的四個子表分別為_(12,40)_ 、_(23,63,55)_、 _(74) _和 _( ) _。10. 向一棵 B_樹插入元素的過程中,若最終引起樹根結點的分裂,則新樹比原樹的高度_增加 1_。1.在堆排序的過程中,對任一分支結點進行篩運算的時間
6、復雜度為_ O(log 2n)_,整個堆排序過程的時間復雜度為_ O(nlog 2 n) _。11. 在快速排序、堆排序、歸并排序中,_堆排序 _歸并排序 _排序是穩(wěn)定的。三、計算題(每題6分,共24 分)1. 在如下數(shù)組A 中鏈接存儲了一個線性表,表頭指針為A 0.next,試寫出該線性表。A01234567data605078903440next3572041A0 A3 A2 A7 A1A5 A4 A0線性表為:( 78, 50, 40, 60, 34, 90)2. 請畫出下圖的鄰接矩陣和鄰接表。011101010111011101011.鄰接矩陣:011103. 已知一個圖的頂點集 V
7、和邊集 E 分別為: V=1,2,3,4,5,6,7; E=(1,2)3,(1,3)5,(1,4)8,(2,5)10,(2,3)6,(3,4)15,(3,5)12,(3,6)9,(4,6)4,(4,7)20,(5,6)18,(6,7)25;用克魯斯卡爾算法得到最小生成樹,試寫出在最小生成樹中依次得到的各條邊。(1,2)3, (4,6)4, (1,3)5, (1,4)8, (2,5)10, (4,7)204.畫出向小根堆中加入數(shù)據(jù)4, 2, 5, 8, 3時,每加入一個數(shù)據(jù)后堆的變化。四、閱讀算法(每題7 分,共 14 分)1.LinkList mynote(LinkList L)/L是不帶頭結
8、點的單鏈表的頭指針2if(L&L-next)q=L; L=L next ; p=L;S1:while(p next) p=p next ;S2:pnext=q ; q next=NULL;return L;請回答下列問題:(1)說明語句 S1 的功能; 判斷 p 的下一節(jié)點是否為空, 如不為空 p 則指向下一節(jié)點 查詢鏈表的尾節(jié)點(2)說明語句組S2 的功能;使 P 的下一節(jié)點賦值給q,并令 q 的下一節(jié)點為空指針。 將第一個節(jié)點鏈接到鏈表的尾部,作為新的尾節(jié)點(3)設鏈表表示的線性表為( a1,a 2, ,a n), 寫出算法執(zhí)行后的返回值所表示的線性表。 a2,a3, an,a12.voi
9、d ABC(BTNode * BT)if BT ABC (BT-left);ABC (BT-right);coutdatadata)item=BST-data;/查找成功return_item_true _;else if(itemdata)return Find(_BST-data_BST-left_,item);else return Find(_item_BST-right_,item);/if六、編寫算法(共8 分)統(tǒng)計出單鏈表HL 中結點的值等于給定值X 的結點數(shù)。int CountX(LNode* HL,ElemType x)int count;node *head,*p;head
10、 = HL;p=head-next;if(head-data!=null)while(p-next)3if(p-data=x)count+;Struct node HLelemtype data;Struct node *next;node;int CountX(LNode* HL,ElemType x) int i=0; LNode* p=HL;/i為計數(shù)器while(p!=NULL) if (P-data=x) i+;p=p-next;/while,出循環(huán)時i 中的值即為x 結點個數(shù)return i;/CountX4數(shù)據(jù)結構試卷(二)一、選擇題 (24 分 )1下面關于線性表的敘述錯誤的是
11、(D)。(A) 線性表采用順序存儲必須占用一片連續(xù)的存儲空間(B) 線性表采用鏈式存儲不必占用一片連續(xù)的存儲空間(C) 線性表采用鏈式存儲便于插入和刪除操作的實現(xiàn)(D) 線性表采用順序存儲便于插入和刪除操作的實現(xiàn)2設哈夫曼樹中的葉子結點總數(shù)為m,若用二叉鏈表作為存儲結構,則該哈夫曼樹中總共有( B)個空指針域。(A) 2m-1(B) 2m(C) 2m+1(D) 4m3設順序循環(huán)隊列Q0 :M-1 的頭指針和尾指針分別為F 和 R,頭指針 F 總是指向隊頭元素的前一位置,尾指針 R 總是指向隊尾元素的當前位置,則該循環(huán)隊列中的元素個數(shù)為( C)。(A) R-F(B) F-R(C) (R-F+M)
12、 M(D) (F-R+M) M4設某棵二叉樹的中序遍歷序列為ABCD,前序遍歷序列為CABD,則后序遍歷該二叉樹得到序列為( A)。(A) BADC(B) BCDA(C) CDAB(D) CBDA5設某完全無向圖中有 n 個頂點,則該完全無向圖中有(A)條邊。(A) n(n-1)/2(B) n(n-1)(C) n 2(D) n2-16設某棵二叉樹中有2000 個結點,則該二叉樹的最小高度為(C)。(A) 9(B) 10(C) 11(D) 127設某有向圖中有n 個頂點,則該有向圖對應的鄰接表中有(B)個表頭結點。(A) n-1(B) n(C) n+1(D) 2n-18設一組初始記錄關鍵字序列(
13、5 ,2, 6,3,8) ,以第一個記錄關鍵字 5 為基準進行一趟快速排序的結果為( C)。(A) 2,3,5, 8,6(B) 3,2,5, 8,6(C) 3,2,5, 6,8(D) 2,3,6, 5,8二、填空題 (24 分 )1. 為了能有效地應用 HASH查找技術,必須解決的兩個問題是 _構造一個好的哈希函數(shù)_和 _確定解決沖突的方法 _。2. 下面程序段的功能實現(xiàn)數(shù)據(jù) x 進棧,要求在下劃線處填上正確的語句。 typedef struct int s100; int top; sqstack;void push(sqstack &stack,int x)if (stack.top=m-
14、1) printf(“ overflow” );else _stack.top+_;_stack.sstack.top=x_;3. 中序遍歷二叉排序樹所得到的序列是_有序 _序列(填有序或無序) 。1.快速排序的最壞時間復雜度為_ O(n2) _,平均時間復雜度為 _O(nlog 2n) _。4.設某棵二叉樹中度數(shù)為0 的結點數(shù)為 N ,度數(shù)為 1 的結點數(shù)為 N,則該二叉樹中度數(shù)為012 的結點數(shù)為 _N0-1 _;若采用二叉鏈表作為該二叉樹的存儲結構,則該二叉樹中共有 _2N0+N1_個空指針域。5.設某無向圖中頂點數(shù)和邊數(shù)分別為n 和 e,所有頂點的度數(shù)之和為d,則 e=_d/2 _。5
15、6. 設一組初始記錄關鍵字序列為 (55 ,63, 44,38,75,80,31,56) ,則利用篩選法建立的初始堆為 _ 。8 已知一有向圖的鄰接表存儲結構如下:從頂點1 出發(fā), DFS遍歷的輸出序列是(1,3,4,5,2),BFS遍歷的輸出序列是( 1,3,2 , 4, 5)三、應用題 (36 分 )1 設一組初始記錄關鍵字序列為(45 ,80, 48, 40, 22,78) ,則分別給出第4 趟簡單選擇排序和第4 趟直接插入排序后的結果。(22 , 40,45, 48,80, 78) ; (40 , 45, 48, 80, 22, 78)1.設指針變量p 指向雙向鏈表中結點A,指針變量q
16、 指向被插入結點B,要求給出在結點A 的后面插入結點B 的操作序列(設雙向鏈表中結點的兩個指針域分別為llink和rlink)。 q-llink=p; q-rlink=p-rlink; p-rlink-llink=q; p-rlink=q;2 設一組有序的記錄關鍵字序列為(13 ,18, 24, 35, 47,50, 62, 83,90) ,查找方法用二分查找,要求計算出查找關鍵字62 時的比較次數(shù)并計算出查找成功時的平均查找長度。 2, ASL=3 設一棵樹T 中邊的集合為(A , B) ,(A , C), (A ,D), (B, E) ,(C, F), (C, G) ,要求用孩子兄弟表示法
17、(二叉鏈表)表示出該樹的存儲結構并將該樹轉化成對應的二叉樹。4 設有無向圖G,要求給出用普里姆算法構造最小生成樹所走過的邊的集合。( 1,3 )( 1,2 )( 3,5)( 5, 6)( 6,4 )5 設有一組初始記錄關鍵字為 (45 , 80, 48,40,22,78) ,要求構造一棵二叉排序樹并給出構造過程。 二叉樹性質:中序遍歷為遞增序列四、算法設計題(16 分 )1 設有一組初始記錄關鍵字序列(12nO(n) 的時間K ,K , , K ),要求設計一個算法能夠在復雜度內將線性表劃分成兩部分,其中左半部分的每個關鍵字均小于Ki ,右半部分的每個關鍵字均大于等于 Ki 。 快速排序2 設
18、有兩個集合 A 和集合 B,要求設計生成集合C=A B 的算法,其中集合A、B 和 C用鏈式存儲結構表示。6數(shù)據(jù)結構試卷(三)一、選擇題 ( 每題 1 分,共 20 分 )1設某數(shù)據(jù)結構的二元組形式表示為A=(D, R), D=01, 02, 03, 04, 05,06, 07, 08,09 ,R=r ,r=, ,則數(shù)據(jù)結構A 是( B)。(A) 線性結構(B)樹型結構(C) 物理結構(D) 圖型結構2下面程序的時間復雜為(B)for ( i=1 , s=0; i=n; i+) t=1; for(j=1 ; jnext ; p-data=q-data(B) q=p-next ; q-data=
19、p-data(C) q=p-next ; p-next=q-next(D) q=p-next ; p-data=q-data; p-next=q-next; free(q); p-next=q-next; free(q); free(q); free(q);4設有 n 個待排序的記錄關鍵字,則在堆排序中需要(A)個輔助記錄單元。(A) 1(B) n(C) nlog2n(D) n 25設一組初始關鍵字記錄關鍵字為(20 ,15,14,18, 21, 36,40,10) ,則以 20 為基準記錄的一趟快速排序結束后的結果為(A)。(A) 10 , 15, 14, 18, 20, 36, 40, 2
20、1(B) 10 , 15, 14, 18, 20, 40, 36, 21(C) 10 , 15, 14, 20, 18, 40, 36, 2l(D) 15 , 10, 14, 18, 20, 36, 40, 216設二叉排序樹中有n 個結點,則在二叉排序樹的平均平均查找長度為(B)。(A) O(1)(B) O(log2n)(C)(D) O(n 2)7設無向圖 G中有 n 個頂點 e 條邊,則其對應的鄰接表中的表頭結點和表結點的個數(shù)分別為( D)。(A) n , e(B) e , n(C) 2n , e(D) n , 2e8.設某強連通圖中有n 個頂點,則該強連通圖中至少有(C)條邊。(A) n
21、(n-1)(B) n+1(C) n(D) n(n+1)9設有 5000 個待排序的記錄關鍵字,如果需要用最快的方法選出其中最小的10 個記錄關鍵字,則用下列(B)方法可以達到此目的。(A)快速排序(B)堆排序(C)歸并排序(D)插入排序10. 下列四種排序中( D)的空間復雜度最大。(A)插入排序(B)冒泡排序(C)堆排序(D)歸并排序二、填空殖 (每空 1 分 共 20 分)1. 數(shù)據(jù)的物理結構主要包括 _ 順序存儲 _和 _鏈式存儲 _兩種情況。2.設一棵完全二叉樹中有500 個結點,則該二叉樹的深度為_ 9_ ;若用二叉鏈表作為該完全二叉樹的存儲結構,則共有_501_個空指針域。3. 設
22、輸入序列為 1、 2、 3,則經(jīng)過棧的作用后可以得到 _5_種不同的輸出序列。4. 設有向圖 G用鄰接矩陣 Ann 作為存儲結構, 則該鄰接矩陣中第 i 行上所有元素之和等于頂點 i 的 _出度 _,第 i 列上所有元素之和等于頂點i 的 _入度 _。75.設哈夫曼樹中共有 n 個結點,則該哈夫曼樹中有_0_個度數(shù)為 1 的結點。6.設有向圖 G中有 n 個頂點 e 條有向邊,所有的頂點入度數(shù)之和為d,則 e 和 d 的關系為_e=d_。7._中序 _遍歷二叉排序樹中的結點可以得到一個遞增的關鍵字序列(填先序、 中序或后序)。8.設查找表中有 100 個元素,如果用二分法查找方法查找數(shù)據(jù)元素X
23、,則最多需要比較_7_次就可以斷定數(shù)據(jù)元素X 是否在查找表中。9.不論是順序存儲結構的棧還是鏈式存儲結構的棧,其入棧和出棧操作的時間復雜度均為_O(1) _。10.設有 n 個結點的完全二叉樹,如果按照從自上到下、 從左到右從1 開始順序編號, 則第i 個結點的雙親結點編號為_i/2 _,右孩子結點的編號為_2i+1 _。11.設一組初始記錄關鍵字為(72 ,73,71,23,94,16,5) ,則以記錄關鍵字 72 為基準的一趟快速排序結果為 _( 5,16,71,23,72,94,73)_ 。12.設有向圖 G 中有向邊的集合E=, , , , ,則該圖的一種拓撲序列為 _1,4,2,3
24、_。13. 下列算法實現(xiàn)在順序散列表中查找值為 x 的關鍵字,請在下劃線處填上正確的語句。 struct recordint key; int others;int hashsqsearch(struct record hashtable ,int k)int i,j; j=i=k % p;while (hashtablej.key!=k&hashtablej.flag!=0)j=(_j+1 _) %m; if (i=j)return(-1);if (_hashtablej.key=k_ ) return(j); else return(-1);14.下列算法實現(xiàn)在二叉排序樹上查找關鍵值k,請
25、在下劃線處填上正確的語句。typedefstructnodeintkey;structnode *lchild;structnode *rchild;bitree;bitree *bstsearch(bitree *t, int k)if (t=0 ) return(0);else while (t!=0)if(t-key=k)_return(t)_;elseif(t-keyk)t=t-lchild;else_ t=t-rchild_;三、計算題 ( 每題 10 分,共 30 分 )1. 已知二叉樹的前序遍歷序列是AEFBGCDHIKJ,中序遍歷序列是EFAGBCHKIJD,畫出此二叉樹,并畫
26、出它的后序線索二叉樹。FEGKJIHDCBA2已知待散列的線性表為( 36,15,40,63,22),散列用的一維地址空間為 0 . 6 ,假定選用的散列函數(shù)是 H( K) = K mod 7 ,若發(fā)生沖突采用線性探查法處理,試:( 1)計算出每一個元素的散列地址并在下圖中填寫出散列表:01234566336152240( 2)求出在查找每一個元素概率相等情況下的平均查找長度。3已知序列( 10,18, 4, 3, 6,12,1,9,18,8)請用快速排序寫出每一趟排序的結果。四、算法設計題( 每題 15 分,共 30 分 )81 設計在單鏈表中刪除值相同的多余結點的算法。typedef in
27、t datatype;typedef struct node datatype data; struct node *next;lklist;void delredundant(lklist *&head)lklist *p,*q,*s;for(p=head;p!=0;p=p-next)for(q=p-next,s=q;q!=0; )if (q-data=p-data) s-next=q-next; free(q);q=s-next;else s=q,q=q-next;2 設計一個求結點x 在二叉樹中的雙親結點算法。typedef struct node datatype data; stru
28、ct node *lchild,*rchild; bitree;bitree *q20; int r=0,f=0,flag=0;void preorder(bitree *bt, char x)if (bt!=0 & flag=0)if (bt-data=x) flag=1; return;else r=(r+1)% 20; qr=bt; preorder(bt-lchild,x); preorder(bt-rchild,x); void parent(bitree *bt,char x)int i;preorder(bt,x);for(i=f+1;ilchild-data=x|qi-rchi
29、ld-data)break;if (flag=0) printf(not found xn);else if (idata); else printf(not parent);9數(shù)據(jù)結構試卷(四)一、選擇題 (每題 1 分共 20 分)1設一維數(shù)組中有n 個數(shù)組元素,則讀取第i 個數(shù)組元素的平均時間復雜度為(C)。(A) O(n)(B) O(nlog 2n)(C) O(1)(D) O(n 2)2設一棵二叉樹的深度為 k,則該二叉樹中最多有(D)個結點。(A) 2k-1(B) 2k(C) 2 k-1(D) 2 k-13設某無向圖中有n 個頂點 e 條邊,則該無向圖中所有頂點的入度之和為(D)。(
30、A) n(B) e(C) 2n(D) 2e4在二叉排序樹中插入一個結點的時間復雜度為(B)。(A) O(1)(B) O(n)(C) O(log2n)(D) O(n 2)5設某有向圖的鄰接表中有n 個表頭結點和m個表結點,則該圖中有(C)條有向邊。(A) n(B) n-1(C) m(D) m-16設一組初始記錄關鍵字序列為 (345 ,253,674,924,627) ,則用基數(shù)排序需要進行( A)趟的分配和回收才能使得初始關鍵字序列變成有序序列。(A) 3(B) 4(C) 5(D) 87設用鏈表作為棧的存儲結構則退棧操作(B)。(A)必須判別棧是否為滿(B)必須判別棧是否為空(C)判別棧元素的
31、類型(D)對棧不作任何判別8下列四種排序中(A)的空間復雜度最大。(A)快速排序(B) 冒泡排序(C)希爾排序(D) 堆9設某二叉樹中度數(shù)為0 的結點數(shù)為 N ,度數(shù)為 1 的結點數(shù)為 N ,度數(shù)為 2 的結點數(shù)為 N ,0l2則下列等式成立的是(C)。(A) N 0=N1+1(B) N 0=Nl +N2(C) N 0=N2+1(D) N 0=2N1+l10. 設有序順序表中有n 個數(shù)據(jù)元素,則利用二分查找法查找數(shù)據(jù)元素X 的最多比較次數(shù)不超過( A)。(A) log 2n+1(B) log2n-1(C) log 2n(D) log2(n+1)二、填空題 (每空 1 分共 20 分)1 設有
32、n 個無序的記錄關鍵字,則直接插入排序的時間復雜度為_ O(n2) _,快速排序的平均時間復雜度為 _O(nlogn) _。21. 設指針變量 p 指向雙向循環(huán)鏈表中的結點X,則刪除結點 X 需要執(zhí)行的語句序列為_pllink-rlink=p-rlink;p-rlink-llink=p-rlink_(設結點中的兩個指針域分別為 llink 和 rlink)。2 根據(jù)初始關鍵字序列(19 , 22, 01, 38, 10) 建立的二叉排序樹的高度為_3_。3 深度為 k 的完全二叉樹中最少有 _2k-1 _個結點。4 設初始記錄關鍵字序列為(K 1,K2, , Kn) ,則用篩選法思想建堆必須從
33、第_n/2 _個元素開始進行篩選。5 設哈夫曼樹中共有99 個結點,則該樹中有_50_個葉子結點;若采用二叉鏈表作為存儲結構,則該樹中有_100_個空指針域。設有一個順序循環(huán)隊列中有M個存儲單元,則該循環(huán)隊列中最多能夠存儲_M-1_個隊列元素;當前實際存儲_(R-F+M)%M_個隊列元素 (設頭指針F 指向當前隊頭元素的前一個位置,尾指針R 指向當前隊尾元素的位置)。106 設順序線性表中有n 個數(shù)據(jù)元素,則第i個位置上插入一個數(shù)據(jù)元素需要移動表中_n+1-i _個數(shù)據(jù)元素;刪除第i 個位置上的數(shù)據(jù)元素需要移動表中_n-i _個元素。7 設一組初始記錄關鍵字序列為(20 , 18, 22, 1
34、6, 30, 19) ,則以 20 為中軸的一趟快速排序結果為 _( 19,18,16,20,30,22)_。8 設一組初始記錄關鍵字序列為(20 ,18,22,16,30,19) ,則根據(jù)這些初始關鍵字序列建成的初始堆為_( 16,18,19,20,30,22) _。1.設某無向圖G 中有 n 個頂點,用鄰接矩陣A 作為該圖的存儲結構,則頂點i 和頂點 j互為鄰接點的條件是_Aij=1_。9 設無向圖對應的鄰接矩陣為A,則 A 中第 i 行上非 0 元素的個數(shù) _等于 _第 i 列上非0 元素的個數(shù)(填等于,大于或小于)。10設前序遍歷某二叉樹的序列為ABCD,中序遍歷該二叉樹的序列為BAD
35、C,則后序遍歷該二叉樹的序列為_BDCA_ 。11設散列函數(shù)H(k)=k mod p ,解決沖突的方法為鏈地址法。要求在下列算法劃線處填上正確的語句完成在散列表hashtalbe中查找關鍵字值等于k 的結點,成功時返回指向關鍵字的指針,不成功時返回標志0。typedef struct node int key; struct node *next; lklist;void createlkhash(lklist *hashtable )int i,k; lklist *s;for(i=0;im;i+)_hashtablei=0_;for(i=0;ikey=ai;k=ai % p; s-next
36、=hashtablek;_hashtablek=s_;三、計算題 ( 每題 10 分,共 30 分 )1、畫出廣義表LS=( ) , (e) , (a , (b , c , d )的頭尾鏈表存儲結構。2、下圖所示的森林:11(1)求樹( a)的先根序列和后根序列;ABCDEF; BDEFCA(2) 求森林先序序列和中序序列; ABCDEFGHIJK; BDEFCAIJKHG( 3)將此森林轉換為相應的二叉樹;AGBCHDEFIJK(a)(b)3、設散列表的地址范圍是 0.9 ,散列函數(shù)為H( key ) = ( key 2 +2) MOD 9,并采用鏈表處理沖突,請畫出元素7、 4、 5、 3
37、、 6、 2、8、 9 依次插入散列表的存儲結構。四、算法設計題( 每題 10 分,共 30 分 )121設單鏈表中有僅三類字符的數(shù)據(jù)元素 ( 大寫字母、 數(shù)字和其它字符 ) ,要求利用原單鏈表中結點空間設計出三個單鏈表的算法,使每個單鏈表只包含同類字符。typedef char datatype;typedef struct node datatype data; struct node *next;lklist;void split(lklist *head,lklist *&ha,lklist *&hb,lklist *&hc)lklist *p; ha=0,hb=0,hc=0;for(
38、p=head;p!=0;p=head)head=p-next; p-next=0;if (p-data=A & p-datanext=ha; ha=p;else if (p-data=0 & p-datanext=hb; hb=p; else p-next=hc; hc=p;2. 設計在鏈式存儲結構上交換二叉樹中所有結點左右子樹的算法。typedef struct node int data; struct node *lchild,*rchild; bitree;/遞歸void swapbitree(bitree *bt)bitree *p;if(bt=0) return;swapbitre
39、e(bt-lchild); swapbitree(bt-rchild);p=bt-lchild; bt-lchild=bt-rchild; bt-rchild=p;3.在鏈式存儲結構上建立一棵二叉排序樹。/遞歸#define n 10typedef struct nodeint key; struct node *lchild,*rchild;bitree;void bstinsert(bitree *&bt,int key)if (bt=0)bt=(bitree *)malloc(sizeof(bitree); bt-key=key;bt-lchild=bt-rchild=0;else if
40、 (bt-keykey) bstinsert(bt-lchild,key); else bstinsert(bt-rchild,key);void createbsttree(bitree *&bt)int i;for(i=1;i=n;i+) bstinsert(bt,random(100);13數(shù)據(jù)結構試卷(五)一、選擇題 (20 分 )1數(shù)據(jù)的最小單位是(A)。(A)數(shù)據(jù)項(B)數(shù)據(jù)類型(C)數(shù)據(jù)元素(D)數(shù)據(jù)變量2設一組初始記錄關鍵字序列為(50 , 40, 95, 20, 15, 70, 60, 45) ,則以增量d=4 的一趟希爾排序結束后前4 條記錄關鍵字為(B)。(A) 40 ,
41、 50, 20, 95(B) 15 , 40, 60, 20(C) 15 , 20, 40, 45(D) 45 , 40, 15, 203設一組初始記錄關鍵字序列為(25 , 50,15, 35,80, 85, 20,40, 36, 70) ,其中含有5 個長度為2 的有序子表,則用歸并排序的方法對該記錄關鍵字序列進行一趟歸并后的結果為( A)。(A) 15 , 25, 35, 50, 20, 40, 80, 85, 36, 70(B) 15 , 25, 35, 50, 80, 20, 85, 40, 70, 36(C) 15 , 25, 35, 50, 80, 85, 20, 36, 40, 70(D) 15 , 25, 35, 50, 80, 20, 36, 40, 70, 854函數(shù) substr(“DATASTRUCTURE”,5, 9) 的返回值為( A)。(A)“STRUCTURE”(B) “ DATA”(C)“ASTRUCTUR”(D)“ DATASTRUCTURE”5設一個有序的單鏈表中有n 個結點, 現(xiàn)要求插入一個新結點后使得單鏈表仍然保持有序,則該操作的時間復雜度為(D)。2(B) O(1)2(D) O(n)(A) O(log n)(C) O(n )6設一棵 m叉樹中度數(shù)為0 的結點數(shù)為 N0,度數(shù)為1 的結點數(shù)為 Nl ,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度新型能源汽車短期借用協(xié)議書4篇
- 2025年度文化產(chǎn)業(yè)發(fā)展基金投資合作合同4篇
- 2025年度智能家居櫥柜定制工程協(xié)議書4篇
- 2025年度新能源車輛租賃代理合同模板3篇
- 2024版離婚協(xié)議年范本
- 2025年單梁橋式起重機項目可行性研究報告-20250102-152444
- 2025年中鹽青海昆侖堿業(yè)有限公司招聘筆試參考題庫含答案解析
- 2025年四川壯禾人力資源有限公司招聘筆試參考題庫含答案解析
- 2025年中國郵政證券有限責任公司招聘筆試參考題庫含答案解析
- 2025年江蘇弘景建設規(guī)劃有限公司招聘筆試參考題庫含答案解析
- 漆畫漆藝 第三章
- CB/T 615-1995船底吸入格柵
- 光伏逆變器一課件
- 貨物供應、運輸、包裝說明方案
- (完整版)英語高頻詞匯800詞
- 《基礎馬來語》課程標準(高職)
- IEC61850研討交流之四-服務影射
- 《兒科學》新生兒窒息課件
- 材料力學壓桿穩(wěn)定
- 人教版小升初英語知識點匯總
- 靜態(tài)爆破專項施工方案
評論
0/150
提交評論