版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、.要求:所有的題目的解答均寫在答題紙上,需寫清楚題目的序號。每張答題紙都要寫上姓名和學(xué)號。一、單項選擇題(每小題1.5分,共計30分)1. 數(shù)據(jù)結(jié)構(gòu)是指 。A. 一種數(shù)據(jù)類型B. 數(shù)據(jù)的存儲結(jié)構(gòu)C. 一組性質(zhì)相同的數(shù)據(jù)元素的集合D. 相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合2. 以下算法的時間復(fù)雜度為 。void fun(int n)int i=1;while (i=n)i+;A. O(n)B. O()C. O(nlog2n)D. O(log2n)3. 在一個長度為n的有序順序表中刪除元素值為x的元素時,在查找元素x時采用二分查找,此時的時間復(fù)雜度為 。A. O(n)B. O(nlog2
2、n)C. O(n2)D. O()4. 在一個帶頭結(jié)點的循環(huán)單鏈表L中,刪除元素值為x的結(jié)點,算法的時間復(fù)雜度為 。A. O(n)B. O()C. O(nlog2n)D. O(n2)5. 若一個棧采用數(shù)組s0.n-1存放其元素,初始時棧頂指針為n,則以下元素x進棧的正確操作是 。A.top+;stop=x;B.stop=x;top+;C.top-;stop=x;B.stop=x;top-;6. 中綴表達式“2*(3+4)-1”的后綴表達式是 ,其中#表示一個數(shù)值的結(jié)束。A. 2#3#4#1#*+-B. 2#3#4#+*1#-C. 2#3#4#*+1#-D. -+*2#3#4#1#7. 設(shè)環(huán)形隊列
3、中數(shù)組的下標(biāo)為0N-1,其隊頭、隊尾指針分別為front和rear(front指向隊列中隊頭元素的前一個位置,rear指向隊尾元素的位置),則其元素個數(shù)為 。A. rear-frontB. rear-front-1C. (rear-front)N+1D. (rear-front+N)N8. 若用一個大小為6的數(shù)組來實現(xiàn)環(huán)形隊列,隊頭指針front指向隊列中隊頭元素的前一個位置,隊尾指針rear指向隊尾元素的位置。若當(dāng)前rear和front的值分別為0和3,當(dāng)從隊列中刪除一個元素,再加入兩個元素后,rear和front的值分別為 。A. 1和5B. 2和4C. 4和2D. 5和19. 一棵深度為
4、h(h1)的完全二叉樹至少有 個結(jié)點。A. 2h-1B. 2hC. 2h+1D. 2h-1+110. 一棵含有n個結(jié)點的線索二叉樹中,其線索個數(shù)為 。A. 2nB. n-1C. n+1D. n11. 設(shè)一棵哈夫曼樹中有1999個結(jié)點,該哈夫曼樹用于對 個字符進行編碼。A. 999B. 998C. 1000D. 100112. 一個含有n個頂點的無向連通圖采用鄰接矩陣存儲,則該矩陣一定是 。A. 對稱矩陣B. 非對稱矩陣C. 稀疏矩陣D. 稠密矩陣13. 設(shè)無向連通圖有n個頂點e條邊,若滿足 ,則圖中一定有回路。A. enB. e1)個元素的線性表的運算只有4種:刪除第一個元素;刪除最后一個元素
5、;在第一個元素前面插入新元素;在最后一個元素的后面插入新元素,則最好使用以下哪種存儲結(jié)構(gòu),并簡要說明理由。(1)只有尾結(jié)點指針沒有頭結(jié)點指針的循環(huán)單鏈表(2)只有尾結(jié)點指針沒有頭結(jié)點指針的非循環(huán)雙鏈表(3)只有頭結(jié)點指針沒有尾結(jié)點指針的循環(huán)雙鏈表(4)既有頭結(jié)點指針也有尾結(jié)點指針的循環(huán)單鏈表2. 已知一棵度為4的樹中,其度為0、1、2、3的結(jié)點數(shù)分別為14、4、3、2,求該樹的結(jié)點總數(shù)n和度為4的結(jié)點個數(shù),并給出推導(dǎo)過程。3. 有人提出這樣的一種從圖G中頂點u開始構(gòu)造最小生成樹的方法:假設(shè)G=(V,E)是一個具有n個頂點的帶權(quán)連通無向圖,T=(U,TE)是G的最小生成樹,其中U是T的頂點集,T
6、E是T的邊集,則由G構(gòu)造從起始頂點u出發(fā)的最小生成樹T的步驟如下:(1)初始化U=u。以u到其他頂點的所有邊為候選邊。(2)重復(fù)以下步驟n-1次,使得其他n-1個頂點被加入到U中。從候選邊中挑選權(quán)值最小的邊加入到TE,設(shè)該邊在V-U中的頂點是v,將v加入U中??疾轫旤cv,將v與V-U頂點集中的所有邊作為新的候選邊。若此方法求得的T是最小生成樹,請予以證明。若不能求得最小邊,請舉出反例。4. 有一棵二叉排序樹按先序遍歷得到的序列為:(12,5,2,8,6,10,16,15,18,20)?;卮鹨韵聠栴}:(1)畫出該二叉排序樹。(2)給出該二叉排序樹的中序遍歷序列。(3)求在等概率下的查找成功和不成
7、功情況下的平均查找長度。三、算法設(shè)計題(每小題10分,共計30分)1. 設(shè)A和B是兩個結(jié)點個數(shù)分別為m和n的單鏈表(帶頭結(jié)點),其中元素遞增有序。設(shè)計一個盡可能高效的算法求A和B的交集,要求不破壞A、B的結(jié)點,將交集存放在單鏈表C中。給出你所設(shè)計的算法的時間復(fù)雜度和空間復(fù)雜度。2. 假設(shè)二叉樹b采用二叉鏈存儲結(jié)構(gòu),設(shè)計一個算法void findparent(BTNode *b,ElemType x,BTNode *&p)求指定值為x的結(jié)點的雙親結(jié)點p,提示,根結(jié)點的雙親為NULL,若在b中未找到值為x的結(jié)點,p亦為NULL。3. 假設(shè)一個連通圖采用鄰接表G存儲結(jié)構(gòu)表示。設(shè)計一個算法,求起點u到
8、終點v的經(jīng)過頂點k的所有路徑。四、附加題(10分)說明:附加題不計入期未考試總分,但計入本課程的總分。假設(shè)某專業(yè)有若干個班,每個班有若干學(xué)生,每個學(xué)生包含姓名和分數(shù),這樣構(gòu)成一棵樹,如圖1所示。假設(shè)樹中每個結(jié)點的name域均不相同,該樹采用孩子兄弟鏈存儲結(jié)構(gòu),其結(jié)點類型定義如下:typedef struct nodechar name50;/專業(yè)、班號或姓名float score;/分數(shù)struct node *child;/指向最左邊的孩子結(jié)點struct node *brother;/指向下一個兄弟結(jié)點 TNode;完成以下算法:(1)設(shè)計一個算法求所有的學(xué)生人數(shù)。(2)求指定某班的平均分
9、。圖1 一棵學(xué)生成績樹“數(shù)據(jù)結(jié)構(gòu)”考試試題(A)參考答案要求:所有的題目的解答均寫在答題紙上,需寫清楚題目的序號。每張答題紙都要寫上姓名和學(xué)號。一、單項選擇題(每小題1.5分,共計30分)1. D2. A3. A4. A5. C6. B7. D8. B9. A10. C11. C12. A13. A14. D15. D16. C17. D18. A19. A20. C二、問答題(共4小題,每小題10分,共計40分)1. 答:本題答案為(3),因為實現(xiàn)上述4種運算的時間復(fù)雜度均為O(1)。【評分說明】選擇結(jié)果占4分,理由占6分。若結(jié)果錯誤,但對各操作時間復(fù)雜度作了分析,可給25分。2. 答:結(jié)點
10、總數(shù)n=n0+n1+n2+n3+n4,即n=23+n4,又有:度之和=n-1=0n0+1n1+2n2+3n3+4n4,即n=17+4n4,綜合兩式得:n4=2,n=25。所以,該樹的結(jié)點總數(shù)為25,度為4的結(jié)點個數(shù)為2?!驹u分說明】結(jié)果為4分,過程占6分。 3. 答:此方法不能求得最小生成樹。例如,對于如圖5.1(a)所示的帶權(quán)連通無向圖,按照上述方法從頂點0開始求得的結(jié)果為5.1(b)所示的樹,顯然它不是最小生成樹,正確的最小生成樹如圖5.1(c)所示。在有些情況下,上述方法無法求得結(jié)果,例如對于如圖5.1(d)所示的帶權(quán)連通無向圖,從頂點0出發(fā),找到頂點1(邊(0,1),從頂點1出發(fā),找到
11、頂點3(邊(1,3),再從頂點3出發(fā),找到頂點0(邊(3,0),這樣構(gòu)成回路,就不能求得最小生成樹了。圖1 求最小生成樹的反例說明:只需給出一種情況即可?!驹u分說明】回答不能求得最小生成樹得5分,反例為5分。若指出可求得最小生成樹,根據(jù)證明過程給12分。4. 答:(1)先序遍歷得到的序列為:(12,5,2,8,6,10,16,15,18,20),中序序列是一個有序序列,所以為:(2,5,6,8,10,12,15,16,18,20),由先序序列和中序序列可以構(gòu)造出對應(yīng)的二叉樹,如圖2所示。(2)中序遍歷序列為:2,5,6,8,10,12,15,16,18,20。(3)ASL成功=(11+22+4
12、3+34)/10=29/10。ASL不成功=(53+64/11=39/11。圖2【評分說明】(1)小題占6分,(2)(3)小題各占2分。三、算法設(shè)計題(每小題10分,共計30分)1. 設(shè)A和B是兩個結(jié)點個數(shù)分別為m和n的單鏈表(帶頭結(jié)點),其中元素遞增有序。設(shè)計一個盡可能高效的算法求A和B的交集,要求不破壞A、B的結(jié)點,將交集存放在單鏈表C中。給出你所設(shè)計的算法的時間復(fù)雜度和空間復(fù)雜度。解:算法如下:void insertion(LinkList *A,LinkList *B,LinkList *&C)LinkList *p=A-next,*q=B-next,*s,*t;C=(LinkList
13、 *)malloc(sizeof(LinkList);t=C;while (p!=NULL & q!=NULL)if (p-data=q-data)s=(LinkList *)malloc(sizeof(LinkList);s-data=p-data;t-next=s;t=s;p=p-next;q=q-next;else if (p-datadata)p=p-next;elseq=q-next;t-next=NULL;算法的時間復(fù)雜度為O(m+n),空間復(fù)雜度為O(MIN(m,n)?!驹u分說明】算法為8分,算法的時間復(fù)雜度和空間復(fù)雜度各占1分。2. 假設(shè)二叉樹b采用二叉鏈存儲結(jié)構(gòu),設(shè)計一個算法
14、void findparent(BTNode *b,ElemType x,BTNode *&p)求指定值為x的結(jié)點的雙親結(jié)點p,提示,根結(jié)點的雙親為NULL,若未找到這樣的結(jié)點,p亦為NULL。解:算法如下:void findparent(BTNode *b,ElemType x,BTNode *&p)if (b!=NULL)if (b-data=x) p=NULL;else if (b-lchild!=NULL & b-lchild-data=x)p=b;else if (b-rchild!=NULL & b-rchild-data=x)p=b;elsefindparent(b-lchild
15、,x,p);if (p=NULL)findparent(b-rchild,x,p);else p=NULL;【評分說明】本題有多種解法,相應(yīng)給分。3. 假設(shè)一個連通圖采用鄰接表G存儲結(jié)構(gòu)表示。設(shè)計一個算法,求起點u到終點v的經(jīng)過頂點k的所有路徑。解:算法如下:int visitedMAXV=0;/全局變量void PathAll(ALGraph *G,int u,int v,int k,int path,int d)/d是到當(dāng)前為止已走過的路徑長度,調(diào)用時初值為-1int m,i;ArcNode *p;visitedu=1;d+;/路徑長度增1pathd=u;/將當(dāng)前頂點添加到路徑中if (u
16、=v & In(path,d,k)=l)/輸出一條路徑printf( );for (i=0;iadjlistu.firstarc;/p指向頂點u的第一條弧的弧頭節(jié)點while (p!=NULL)m=p-adjvex;/m為u的鄰接點if (visitedm=0)/若該頂點未標(biāo)記訪問,則遞歸訪問之PathAll(G,m,v,l,path,d);p=p-nextarc;/找u的下一個鄰接點visitedu=0;/恢復(fù)環(huán)境:使該頂點可重新使用int In(int path,int d,int k)/判斷頂點k是否包含在路徑中int i;for (i=0;ichild=NULL) return 1;return count(b-child)+count(b-brother);說明:本題可以從鏈表的角度求解。(2)算法如下:int Average(TNode *b,char clas
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024高考化學(xué)一輪復(fù)習(xí)第一部分考點42生命中的基礎(chǔ)有機化學(xué)物質(zhì)強化訓(xùn)練含解析
- 2024高考地理一輪復(fù)習(xí)一等值線專練含解析
- 小學(xué)2025年教育教學(xué)工作計劃
- 工程竣工財務(wù)決算資料清單
- 工程項目安全生產(chǎn)操作規(guī)程
- 二零二五年股份制企業(yè)股東墊資及利潤分成協(xié)議3篇
- 小動物三年級作文300字
- 2024年深圳信息職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試歷年參考題庫含答案解析
- 芯軸粗車一序作業(yè)指導(dǎo)書.文檔
- 第3章電阻式傳感器講解學(xué)習(xí)
- 2025年月度工作日歷含農(nóng)歷節(jié)假日電子表格版
- 山西省呂梁市2023-2024學(xué)年高二上學(xué)期期末考試數(shù)學(xué)試題(解析版)
- 2024年市場運營部職責(zé)樣本(3篇)
- 2024體育活動區(qū)鋪沙子(合同)協(xié)議
- 《中華人民共和國機動車駕駛?cè)丝颇恳豢荚囶}庫》
- 2024年VB程序設(shè)計:從入門到精通
- 2024年故宮文化展覽計劃:課件創(chuàng)意與呈現(xiàn)
- 公共交通乘客投訴管理制度
- 不銹鋼伸縮縫安裝施工合同
- 水土保持監(jiān)理總結(jié)報告
- Android移動開發(fā)基礎(chǔ)案例教程(第2版)完整全套教學(xué)課件
評論
0/150
提交評論