版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題1 一、選擇題(30分)1設(shè)某數(shù)據(jù)結(jié)構(gòu)的二元組形式表示為A=(D,R),D=01,02,03,04,05,06,07,08,09,R=r,r=<01,02>,<01,03>,<01,04>,<02,05>,<02,06>,<03,07>,<03,08>,<03,09>,則數(shù)據(jù)結(jié)構(gòu)A是( B)。(A) 線性結(jié)構(gòu)(B) 樹(shù)型結(jié)構(gòu)(C) 物理結(jié)構(gòu)(D) 圖型結(jié)構(gòu)2下面程序的時(shí)間復(fù)雜為( B )for(i=1,s=0; i<=n; i+) t=1;for(j=1;j<=i
2、;j+) t=t*j;s=s+t;(A) O(n)(B) O(n2)(C) O(n3)(D) O(n4)3設(shè)指針變量p指向單鏈表中結(jié)點(diǎn)A,若刪除單鏈表中結(jié)點(diǎn)A,則需要修改指針的操作序列為( A )。(A) q=p->next;p->data=q->data;p->next=q->next;free(q);(B) q=p->next;q->data=p->data;p->next=q->next;free(q);(C) q=p->next;p->next=q->next;free(q);(D) q=p->next
3、;p->data=q->data;free(q);4設(shè)有n個(gè)待排序的記錄關(guān)鍵字,則在堆排序中需要( A )個(gè)輔助記錄單元。(A) 1(B) n(C) nlog2n(D) n25設(shè)一組初始關(guān)鍵字記錄關(guān)鍵字為(20,15,14,18,21,36,40,10),則以20為基準(zhǔn)記錄的一趟快速排序結(jié)束后的結(jié)果為( A)。(A) 10,15,14,18,20,36,40,21(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設(shè)二叉排序樹(shù)中有n個(gè)結(jié)點(diǎn),則在二叉排序樹(shù)的平均平均查找長(zhǎng)度
4、為( B )。(A) O(1)(B) O(log2n)(C)(D) O(n2)7設(shè)無(wú)向圖G中有n個(gè)頂點(diǎn)e條邊,則其對(duì)應(yīng)的鄰接表中的表頭結(jié)點(diǎn)和表結(jié)點(diǎn)的個(gè)數(shù)分別為(D )。(A) n,e(B) e,n(C) 2n,e(D) n,2e8. 設(shè)某強(qiáng)連通圖中有n個(gè)頂點(diǎn),則該強(qiáng)連通圖中至少有( C)條邊。(A) n(n-1)(B) n+1(C) n(D) n(n+1)9設(shè)有5000個(gè)待排序的記錄關(guān)鍵字,如果需要用最快的方法選出其中最小的10個(gè)記錄關(guān)鍵字,則用下列( B )方法可以達(dá)到此目的。(A) 快速排序(B) 堆排序(C) 歸并排序(D) 插入排序10.下列四種排序中( D )的空間復(fù)雜度最大。(A)
5、 插入排序(B) 冒泡排序(C) 堆排序(D) 歸并排序 二、填空殖(48分,其中最后兩小題各6分)1. 數(shù)據(jù)的物理結(jié)構(gòu)主要包括_順序存儲(chǔ)結(jié)構(gòu)_和_鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)_兩種情況。2. 設(shè)一棵完全二叉樹(shù)中有500個(gè)結(jié)點(diǎn),則該二叉樹(shù)的深度為_(kāi)9_;若用二叉鏈表作為該完全二叉樹(shù)的存儲(chǔ)結(jié)構(gòu),則共有_個(gè)空指針域。3.
6、 設(shè)輸入序列為1、2、3,則經(jīng)過(guò)棧的作用后可以得到_種不同的輸出序列。4. 設(shè)有向圖G用鄰接矩陣Ann作為存儲(chǔ)結(jié)構(gòu),則該鄰接矩陣中第i行上所有元素之和等于頂點(diǎn)i的_,第i列上所有元素之和等于頂點(diǎn)i的_。5. 設(shè)哈夫曼樹(shù)中共有n個(gè)結(jié)點(diǎn),則該哈夫曼樹(shù)中有_0_個(gè)度數(shù)為1的結(jié)點(diǎn)。6. 設(shè)有向圖G中有n個(gè)頂點(diǎn)e條有向邊
7、,所有的頂點(diǎn)入度數(shù)之和為d,則e和d的關(guān)系為_(kāi)。7. _遍歷二叉排序樹(shù)中的結(jié)點(diǎn)可以得到一個(gè)遞增的關(guān)鍵字序列(填先序、中序或后序)。8. 設(shè)查找表中有100個(gè)元素,如果用二分法查找方法查找數(shù)據(jù)元素X,則最多需要比較_次就可以斷定數(shù)據(jù)元素X是否在查找表中。9. 不論是順序存儲(chǔ)結(jié)構(gòu)的棧還是鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的棧,其入棧和出
8、棧操作的時(shí)間復(fù)雜度均為_(kāi)。10. 設(shè)有n個(gè)結(jié)點(diǎn)的完全二叉樹(shù),如果按照從自上到下、從左到右從1開(kāi)始順序編號(hào),則第i個(gè)結(jié)點(diǎn)的雙親結(jié)點(diǎn)編號(hào)為_(kāi),右孩子結(jié)點(diǎn)的編號(hào)為_(kāi)。11. 設(shè)一組初始記錄關(guān)鍵字為(72,73,71,23,94,16,5),則以記錄關(guān)鍵字72為基準(zhǔn)的一趟快速排序結(jié)果為_(kāi)。12. 設(shè)有向圖G中有向邊的集合E=<1,2>,<2,3>,<1,4>,<4,2>,<4,3>,則該圖的一種拓?fù)湫?/p>
9、列為_(kāi)。13. 下列算法實(shí)現(xiàn)在順序散列表中查找值為x的關(guān)鍵字,請(qǐng)?jiān)谙聞澗€處填上正確的語(yǔ)句。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=(_) %m; if (i=j) return(-1); if (_ ) return(j); else return(-1);14.
10、60; 下列算法實(shí)現(xiàn)在二叉排序樹(shù)上查找關(guān)鍵值k,請(qǐng)?jiān)谙聞澗€處填上正確的語(yǔ)句。typedef struct nodeint key; struct node *lchild; struct node *rchild;bitree;bitree *bstsearch(bitree *t, int k) if (t=0 ) return(0);else while (t!=0)if (t->key=k)_; else if (t->key>k) t=t->lchild; else_; 三、算法設(shè)計(jì)題(22分)1 設(shè)計(jì)在單鏈表中刪除值相同的多余
11、結(jié)點(diǎn)的算法。2 設(shè)計(jì)一個(gè)求結(jié)點(diǎn)x在二叉樹(shù)中的雙親結(jié)點(diǎn)算法。參考答案 一、選擇題1.B2.B3.A4.A5.A6.B7.D8.C9.B10.D第3小題分析:首先用指針變量q指向結(jié)點(diǎn)A的后繼結(jié)點(diǎn)B,然后將結(jié)點(diǎn)B的值復(fù)制到結(jié)點(diǎn)A中,最后刪除結(jié)點(diǎn)B。第9小題分析:9快速排序、歸并排序和插入排序必須等到整個(gè)排序結(jié)束后才能夠求出最小的10個(gè)數(shù),而堆排序只需要在初始堆的基礎(chǔ)上再進(jìn)行10次篩選即可,每次篩選的時(shí)間復(fù)雜度為O(log2n)。 二、填空題1. 1. 順序存儲(chǔ)結(jié)構(gòu)、鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)2.
12、2. 9,5013. 3. 54. 4. 出度,入度5. 5. 06. 6. e=d7. 7.
13、中序8. 8. 79. 9. O(1)10. 10. i/2,2i+111. 11. (5,16,71,23,72,94,73)12. 12. (1,4,3,2)13. 13. j+1,hashtablej.key=k14. 14.
14、0; return(t),t=t->rchild第8小題分析:二分查找的過(guò)程可以用一棵二叉樹(shù)來(lái)描述,該二叉樹(shù)稱為二叉判定樹(shù)。在有序表上進(jìn)行二分查找時(shí)的查找長(zhǎng)度不超過(guò)二叉判定樹(shù)的高度1+log2n。 三、算法設(shè)計(jì)題1. 1. 設(shè)計(jì)在單鏈表中刪除值相同的多余結(jié)點(diǎn)的算法。typedef int datatype;typedef struct node datatype data; struct node *next;lklist;void delredundant(
15、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. 2. 設(shè)計(jì)一個(gè)求結(jié)點(diǎn)x在二叉樹(shù)中的雙親結(jié)點(diǎn)算法。typedef struct node datatype data; struct
16、 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
17、; i<=r; i+) if (qi->lchild->data=x | qi->rchild->data) break; if (flag=0) printf("not found xn"); else if (i<=r) printf("%c",bt->data); else printf("not parent");數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)題2 一、選擇題(30分)1設(shè)一維數(shù)組中有n個(gè)數(shù)組元素,則讀取第i個(gè)數(shù)組元素的平均時(shí)間復(fù)雜度為( )。(A) O(n)(B) O(nlog2n)(C)
18、O(1)(D) O(n2)2設(shè)一棵二叉樹(shù)的深度為k,則該二叉樹(shù)中最多有( )個(gè)結(jié)點(diǎn)。(A) 2k-1(B) 2k(C) 2k-1(D) 2k-13設(shè)某無(wú)向圖中有n個(gè)頂點(diǎn)e條邊,則該無(wú)向圖中所有頂點(diǎn)的入度之和為( )。(A) n(B) e(C) 2n(D) 2e4在二叉排序樹(shù)中插入一個(gè)結(jié)點(diǎn)的時(shí)間復(fù)雜度為( )。(A) O(1)(B) O(n)(C) O(log2n)(D) O(n2)5設(shè)某有向圖的鄰接表中有n個(gè)表頭結(jié)點(diǎn)和m個(gè)表結(jié)點(diǎn),則該圖中有( )條有向邊。(A) n(B) n-1(C) m(D) m-16設(shè)一組初始記錄關(guān)鍵字序列為(345,253,674,924,627),則用基數(shù)排序需要進(jìn)行
19、( )趟的分配和回收才能使得初始關(guān)鍵字序列變成有序序列。(A) 3(B) 4(C) 5(D) 87設(shè)用鏈表作為棧的存儲(chǔ)結(jié)構(gòu)則退棧操作( )。(A) 必須判別棧是否為滿(B) 必須判別棧是否為空(C) 判別棧元素的類型(D) 對(duì)棧不作任何判別8下列四種排序中( )的空間復(fù)雜度最大。(A) 快速排序(B) 冒泡排序(C) 希爾排序(D) 堆9設(shè)某二叉樹(shù)中度數(shù)為0的結(jié)點(diǎn)數(shù)為N0,度數(shù)為1的結(jié)點(diǎn)數(shù)為Nl,度數(shù)為2的結(jié)點(diǎn)數(shù)為N2,則下列等式成立的是( )。(A) N0=N1+1(B) N0=Nl+N2(C) N0=N2+1(D) N0=2N1+l10.設(shè)有序順序表中有n個(gè)數(shù)據(jù)元素,則利用二分查找法查找數(shù)
20、據(jù)元素X的最多比較次數(shù)不超過(guò)( )。(A) log2n+1(B) log2n-1(C) log2n(D) log2(n+1) 二、填空題(42分)1 1 設(shè)有n個(gè)無(wú)序的記錄關(guān)鍵字,則直接插入排序的時(shí)間復(fù)雜度為_(kāi),快速排序的平均時(shí)間復(fù)雜度為_(kāi)。2 2 設(shè)指針變量p指向雙向循環(huán)鏈表中的結(jié)點(diǎn)X,則刪除結(jié)點(diǎn)X需要執(zhí)行的語(yǔ)句序列為_(kāi)(設(shè)結(jié)點(diǎn)中的兩個(gè)指針域分別為llink和rlink)。3 3 根據(jù)初始關(guān)鍵字序列(19,22,01,38,10)建立的二叉排序樹(shù)的高度為_(kāi)。4 4
21、 深度為k的完全二叉樹(shù)中最少有_個(gè)結(jié)點(diǎn)。5 5 設(shè)初始記錄關(guān)鍵字序列為(K1,K2,Kn),則用篩選法思想建堆必須從第_個(gè)元素開(kāi)始進(jìn)行篩選。6 6 設(shè)哈夫曼樹(shù)中共有99個(gè)結(jié)點(diǎn),則該樹(shù)中有_個(gè)葉子結(jié)點(diǎn);若采用二叉鏈表作為存儲(chǔ)結(jié)構(gòu),則該樹(shù)中有_個(gè)空指針域。7 7 設(shè)有一個(gè)順序循環(huán)隊(duì)列中有M個(gè)存儲(chǔ)單元,則該循環(huán)隊(duì)列中最多能夠存儲(chǔ)_個(gè)隊(duì)列元素;當(dāng)前實(shí)際存儲(chǔ)_個(gè)隊(duì)列元素(設(shè)頭指針F指向當(dāng)前隊(duì)頭元素的前一個(gè)位置,尾指針指向當(dāng)前隊(duì)尾元素的位置)。8 8 &
22、#160; 設(shè)順序線性表中有n個(gè)數(shù)據(jù)元素,則第i個(gè)位置上插入一個(gè)數(shù)據(jù)元素需要移動(dòng)表中_個(gè)數(shù)據(jù)元素;刪除第i個(gè)位置上的數(shù)據(jù)元素需要移動(dòng)表中_個(gè)元素。9 9 設(shè)一組初始記錄關(guān)鍵字序列為(20,18,22,16,30,19),則以20為中軸的一趟快速排序結(jié)果為_(kāi)。10 10設(shè)一組初始記錄關(guān)鍵字序列為(20,18,22,16,30,19),則根據(jù)這些初始關(guān)鍵字序列建成的初始堆為_(kāi)。11 11設(shè)某無(wú)向圖G中有n個(gè)頂點(diǎn),用鄰接矩陣A作為該圖的存儲(chǔ)結(jié)構(gòu),則頂點(diǎn)i和頂點(diǎn)j互為鄰接點(diǎn)的條件是_。12 12設(shè)無(wú)向圖對(duì)應(yīng)的鄰接矩陣為A,則A中第i上非0元素的個(gè)數(shù)_第i列上非0元素
23、的個(gè)數(shù)(填等于,大于或小于)。13 13設(shè)前序遍歷某二叉樹(shù)的序列為ABCD,中序遍歷該二叉樹(shù)的序列為BADC,則后序遍歷該二叉樹(shù)的序列為_(kāi)。14 14設(shè)散列函數(shù)H(k)=k mod p,解決沖突的方法為鏈地址法。要求在下列算法劃線處填上正確的語(yǔ)句完成在散列表hashtalbe中查找關(guān)鍵字值等于k的結(jié)點(diǎn),成功時(shí)返回指向關(guān)鍵字的指針,不成功時(shí)返回標(biāo)志0。typedef struct node int key; struct node *next; lklist; void createlkhash(lklist *hashtable )int i,k; lklist *s;for(i=0;i<
24、;m;i+)_;for(i=0;i<n;i+)s=(lklist *)malloc(sizeof(lklist); s->key=ai;k=ai % p; s->next=hashtablek;_; 三、算法設(shè)計(jì)題(28分)1. 設(shè)單鏈表中有僅三類字符的數(shù)據(jù)元素(大寫字母、數(shù)字和其它字符),要求利用原單鏈表中結(jié)點(diǎn)空間設(shè)計(jì)出三個(gè)單鏈表的算法,使每個(gè)單鏈表只包含同類字符。2. 設(shè)計(jì)在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)上交換二叉樹(shù)中所有結(jié)點(diǎn)左右子樹(shù)的算法。3. 在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)上建立一棵二叉排序樹(shù)。參考答案 一、選擇題1C2D3D4B5C6A7B8A9C10A 二、填空題1.
25、 1. O(n2),O(nlog2n)2. 2. p>llink->rlink=p->rlink; p->rlink->llink=p->rlink3. 3. 34. 4. 2k-15. 5.
26、 n/26. 6. 50,517. 7. m-1,(R-F+M)%M8. 8. n+1-i,n-i9. 9. (19,18,16,20,30,22)10. 10. (1
27、6,18,19,20,32,22)11. 11. Aij=112. 12. 等于13. 13. BDCA14. 14. hashtablei=0,hashtablek=s 三、算法設(shè)計(jì)題1. 1. 設(shè)單鏈表中有僅三類字符的數(shù)據(jù)元素(大寫字母、數(shù)字和其它字符),要求利用原單鏈表中結(jié)點(diǎn)空間設(shè)計(jì)出三個(gè)單鏈表的算法,使每個(gè)單鏈表只包
28、含同類字符。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(p=head;p!=0;p=head) head=p->next; p->next=0; if (p->data>='A' && p->data<=
29、'Z') p->next=ha; ha=p; else if (p->data>='0' && p->data<='9') p->next=hb; hb=p; else p->next=hc; hc=p; 2. 2. 設(shè)計(jì)在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)上交換二叉樹(shù)中所有結(jié)點(diǎn)左右子樹(shù)的算法。typedef struct node int data; struct node *lchild,*rchild; bitree;vo
30、id swapbitree(bitree *bt) bitree *p; if(bt=0) return;swapbitree(bt->lchild); swapbitree(bt->rchild);p=bt->lchild; bt->lchild=bt->rchild; bt->rchild=p;3. 3. 在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)上建立一棵二叉排序樹(shù)。#define n 10typedef struct nodeint key; struct node *lchild,*rchild;bitree;void b
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度農(nóng)機(jī)信息化管理系統(tǒng)建設(shè)合同4篇
- 2025年度鋼管行業(yè)國(guó)際市場(chǎng)拓展合作合同
- 2025年度廚房員工勞動(dòng)合同保密與競(jìng)業(yè)限制合同2篇
- 2025年度國(guó)際教育項(xiàng)目合作辦學(xué)合同范本4篇
- 檢測(cè)設(shè)備智能化升級(jí)-深度研究
- 農(nóng)業(yè)大數(shù)據(jù)應(yīng)用前景分析-深度研究
- 2025年度新型冷鏈儲(chǔ)藏室租賃服務(wù)協(xié)議范本4篇
- 光催化CO2還原催化劑壽命評(píng)估-深度研究
- 二零二五版體育賽事贊助與冠名權(quán)合同4篇
- 2025年度地下車庫(kù)租賃與智能管理系統(tǒng)集成合同4篇
- 臺(tái)兒莊介紹課件
- 疥瘡病人的護(hù)理
- 人工智能算法與實(shí)踐-第16章 LSTM神經(jīng)網(wǎng)絡(luò)
- 17個(gè)崗位安全操作規(guī)程手冊(cè)
- 2025年山東省濟(jì)南市第一中學(xué)高三下學(xué)期期末統(tǒng)一考試物理試題含解析
- 中學(xué)安全辦2024-2025學(xué)年工作計(jì)劃
- 網(wǎng)絡(luò)安全保障服務(wù)方案(網(wǎng)絡(luò)安全運(yùn)維、重保服務(wù))
- 2024年鄉(xiāng)村振興(產(chǎn)業(yè)、文化、生態(tài))等實(shí)施戰(zhàn)略知識(shí)考試題庫(kù)與答案
- 現(xiàn)代科學(xué)技術(shù)概論智慧樹(shù)知到期末考試答案章節(jié)答案2024年成都師范學(xué)院
- 軟件模塊化設(shè)計(jì)與開(kāi)發(fā)標(biāo)準(zhǔn)與規(guī)范
- 2024年遼寧鐵道職業(yè)技術(shù)學(xué)院高職單招(英語(yǔ)/數(shù)學(xué)/語(yǔ)文)筆試歷年參考題庫(kù)含答案解析
評(píng)論
0/150
提交評(píng)論