(完整word版)2007~2008學(xué)年《數(shù)據(jù)結(jié)構(gòu)》B_第1頁
(完整word版)2007~2008學(xué)年《數(shù)據(jù)結(jié)構(gòu)》B_第2頁
(完整word版)2007~2008學(xué)年《數(shù)據(jù)結(jié)構(gòu)》B_第3頁
(完整word版)2007~2008學(xué)年《數(shù)據(jù)結(jié)構(gòu)》B_第4頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、華僑大學(xué)數(shù)據(jù)結(jié)構(gòu)試卷(B)系別:班級:學(xué)號:姓名:考試日期:年月日題號一二三四五總分得分一、選擇填空題(每題 1.5 分,共 15 分)1、 在一個長度為n 的順序線性表中順序查找值為x 的元素時,查找成功時的平均查找長度(即x 與元素的平均比較次數(shù),假定查找每個元素的概率都相等)為()。A nBn/2C(n+1)/2D(n-1)/22、已知單鏈表 A 長度為 m,單鏈表 B 長度為 n,若將B 聯(lián)接在 A 的末尾,其時間復(fù)雜度應(yīng)為()。A O(1)BO(m)CO(n)DO(m+n)3、 若進棧序列為a,b,c,則通過入出棧操作可能得到的a,b,c 的不同排列個數(shù)為()。A 4B5C6D74、

2、 由權(quán)值分別為11, 8, 6,2, 5 的葉子結(jié)點生成一棵赫夫曼樹,它的帶權(quán)路徑長度WPL 為()。A 24B71C48D535、已知函數(shù) Sub(s,i,j) 的功能是返回串 s 中從第 i 個字符起長度為 j 的子串,函數(shù) Scopy(s,t)的功能為復(fù)制串 t 到 s。若字符串 S=SCIENCESTUDY ,則調(diào)用函數(shù) Scopy(P,Sub(S,1,7)后得到( )。AP= SCIENCEBP= STUDYCS= SCIENCEDS= STUDY6、二維數(shù)組A47 按列優(yōu)先存儲方法存儲在內(nèi)存中,若每個元素占2 個存儲單元,且數(shù)組中第一個元素的存儲地址為120,則元素 A34 的存儲

3、地址為()。A139B145C158D1627、下列陳述中正確的是() 。A 二叉樹是度為2 的有序樹B 二叉樹中結(jié)點只有一個孩子時無左右之分C 二叉樹中必有度為 2 的結(jié)點D 二叉樹中最多只有兩棵子樹,并且有左右之分8、 n 個頂點的無向完全圖中含有向邊的數(shù)目最多為()。An-1BnCn(n-1)/2Dn(n-1)9、假定一個鏈?zhǔn)疥犃械年狀^和隊尾指針分別為front 和 rear,則判斷隊空的條件為()。Afront = =rearBfront !=NULLCrear != NULLDfront NULL10、下列排序方法中,哪一種方法的比較次數(shù)與紀(jì)錄的初始排列狀態(tài)無關(guān)?()A直接插入排序B

4、冒泡排序C快速排序D簡單選擇排序二、填空題(每空1 分,共 10 分)1、若一個算法中的語句頻度之和為T(n)=3720n+4nlogn ,則算法的時間復(fù)雜度為。2、數(shù)據(jù)結(jié)構(gòu)的存儲結(jié)構(gòu)包括順序、索引和散列等四種。13 、假設(shè)一個10 階的下三角矩陣A ,按行優(yōu)先順序壓縮存儲在一維數(shù)組C 中,則C 數(shù)組的大小應(yīng)為_ 。4、一棵高度為4 的二叉樹中最少含有個結(jié)點,最多含有個結(jié)點;一棵高度為 4 的完全二叉樹中,最少含有個結(jié)點,最多含有個結(jié)點。5、在對長度為n 的關(guān)鍵字序列進行堆排序的過程中,對堆頂元素進行堆調(diào)整的篩選運算的時間復(fù)雜度為,整個堆排序過程的時間復(fù)雜度為。6 、若對序列49 , 38,

5、65, 97, 76, 13, 27, 50 采用冒泡排序法排序,則第二趟結(jié)束后序列的狀態(tài)是。三、解答題(每題5 分,共 30 分)1、指出下面算法中,帶下劃線的語句的語句頻度,并估計該算法的時間復(fù)雜度。int fun(int n)s=0;t=0;for(i=1;i=i;j-)t+;return s+t;2、設(shè)循環(huán)隊列的總長度為 5,入隊的序列為 A1 ,A2 ,A3 ,A4 ,然后 A1 , A2 出隊,最后 A5 , A6 入隊,請畫出最后的循環(huán)隊列,并寫出在循環(huán)隊列中判斷隊空和隊滿的條件。3、某二叉樹 bt 中序遍歷序列為: ABCEFGHD ,后序遍歷序列為: ABFHGEDC ,請構(gòu)

6、造該二叉樹(畫出樹形),并畫出對應(yīng)的先序線索(不帶頭結(jié)點) 。4、試畫出如下圖的無向圖G 的鄰接表表示,要求鄰接表中的各頂點的鄰接鏈表中的表結(jié)點按頂點序號從小到大排列。 根據(jù)你所給出的鄰接表,給出從 A 出發(fā)的深度優(yōu)先搜索序列,并給出其深度優(yōu)先搜索dfs 生成樹。ABCDE無向圖 G25、設(shè)有一個關(guān)鍵字輸入序列 31 ,55, 11,37,46,73, 7 ,試從空樹開始構(gòu)造平衡二叉排序樹,畫出每加入一個結(jié)點時二叉樹的形態(tài),若發(fā)生不平衡,請指出平衡調(diào)整的類型和調(diào)整結(jié)果。最后,計算在等概率情況下,查找成功的平均查找長度ASL 。6、判別序列 12 ,2, 16, 30, 8, 28, 4, 10

7、, 20, 6, 18 是否為大頂堆,如果不是,則寫出將其調(diào)整為大頂堆的過程(用樹形表示) 。四、算法閱讀題(每題5 分,共 15 分)1、 head 為不帶頭結(jié)點的單鏈表頭指針,鏈表中結(jié)點的域有數(shù)據(jù)域data 和指針域next,閱讀下面算法,指出該算法的功能。voidfun1( Linklist &head )p=head;while ( p!= NULL )q=p; r= p-next;while( r!=NULL )if(r-data data )q=r;r= r-next;temp=q-data; q-data=p-data; p-data=temp; p= p-next ;2、閱讀下

8、面算法,指出該算法的功能。voidfun2(char str )Stack T;int i=0;InitStack(T);/初始化棧Twhile(stri != 0 )Push(T, stri);i+;i = 0;while(!StackEmpty(T) /判斷棧 T 是否為空棧Pop(T, stri);i+;3、設(shè)二叉樹t 采用二叉鏈表存儲結(jié)構(gòu),閱讀下面算法,指出該算法的功能。intfun3(BiTreet)if(t=NULL)return 0;else if(t-lchild=NULL)&(t-rchild=NULL)return 1;elsereturn ( fun3(t-lchild)

9、+algo3(t-rchild)) ;3五、算法設(shè)計題(共30 分)(說明:你所設(shè)計算法中若需調(diào)用基本操作,需給出實現(xiàn)該基本操作的算法)1、 L 為帶頭結(jié)點的單鏈表頭指針且鏈表長度大于2,試設(shè)計算法刪除鏈表L 的尾結(jié)點,并將該結(jié)點插入到鏈表 L 的首結(jié)點之前(即頭結(jié)點之后)。(10 分)2、設(shè)二叉排序樹bt 以二叉鏈表為存儲結(jié)構(gòu),試設(shè)計算法刪除二叉排序樹bt 中值最小的結(jié)點。 ( 8 分)3、試設(shè)計算法Create_dg(algraph &g1 ,Mgraphg2),將鄰接表表示的有向圖g1,轉(zhuǎn)換成數(shù)組表示的有向圖g2。( 12 分)#defineINFINITYINT_MAX/圖的鄰接表存儲

10、表示:#defineMAX_NUM20typedef structArcNode/ 圖的數(shù)組(鄰接矩陣)存儲表示:intadjvex;typedef structArcCellstruct ArcNode*nextarc;VRTypeadj;ArcNode;InfoType*info;typedefstructVNode ArcCell;VertexTypedata;typedefstructArcNode*firstarc;VertexTypevexsMAX_NUM ;VNode;ArcCellarcsMAX_NUM MAX_NUM;typedefstructintvexnum , arcn

11、um;VNodeverticesMAX_NUM;MGraph;intvexnum , arcnum;ALGraph;4B 卷 參考答案一、選擇題(共15 分,每小題 1.5 分)題號12345答案題號678910答案二、填空題(共10 分,每小題 1 分)1.2.3.4.5.6.三、解答題(共30 分,每小題 5 分)1. s+=2;的語句頻度是 n-1-( 1分)t+;的語句頻度是 (n-1)(n+2)/2-(2分 )該算法的時間復(fù)雜度是 O(n-1)(n+2)/2)=O(n2分 )-(22. 最后的循環(huán)隊列如下圖所示: ( 2 分)Q.rear Q.frontA6A3A4A501234隊空

12、的條件(1.5分): Q.rear 等于 Q.front隊滿的條件(1.5分): (Q.rear+1) mod 5等于 Q.front3.該二叉樹先序序列為 CBADEGFH(2分 ) ,對應(yīng)的中序線索二叉樹(不帶頭結(jié)點)為:(3 分)CNULLNULLDBAE5G4. 無向圖 G的鄰接表表示如下 :(2 分 )從 A 出發(fā)的深度優(yōu)先搜索序列:A,D,E,B,C ( 1.5 分),相應(yīng)的深度優(yōu)先搜索生成樹為:( 1.5 分)ADEBC深度優(yōu)先搜索樹dfs5. 構(gòu)造過程如下: ( 3.5 分)0-131310550-13131600+105555111131+21155LR 型-1370-246

13、310-11146RR 型0-13755073+146+131+101137007-1310011460037550460-13155000113773-155073ASLsucc=1/7(1*1+2*2+3*3+4*1)=18/7(1.5分 )76.按照層次遍歷方法寫成二叉樹(1 分):12/216/308284/1020618序列一共有11 個值應(yīng)該從 11/2處開始交換,即第5 個值 8 處開始建堆操作將該子樹調(diào)整為大根堆:(4分)1、12/216/3018284/1020682 、對 30 進行操作發(fā)現(xiàn)該子樹已是大根堆不用調(diào)整接著對16 進行操作12/228/3018164/10206

14、83 、對 2 進行操作12/3028/2018164/102684 、對根結(jié)點12 進行操作30/2028/1218164/102688四、算法閱讀題(共15 分,每小題 5 分)1.用鏈表表示的數(shù)據(jù)的簡單選擇排序,結(jié)點的域為數(shù)據(jù)域data ,指針域next ;鏈表首指針為 head ,鏈表無頭結(jié)點。 p 指向無序區(qū)第一個記錄,q 指向最小值結(jié)點,一趟排序結(jié)束,p 和 q 所指結(jié)點值交換,同時向后移 p 指針。2.字符串倒序存放。3.求二叉樹 t 中的葉子結(jié)點個數(shù)五、算法設(shè)計題(共30 分)1 void def_l_ins_f(Linklist &l)-1分/ 刪除尾結(jié)點,插入在首結(jié)點之前q

15、 = l;p = l-next;-2分while ( p-nexet)q = p;p = p-next; /p指向尾結(jié)點 ,q 相隨 -4分q-next = NULL;/ 刪除-1分p-next = l-next;/ 插入-1分l-next = p;-1分/del_l_ins_f2.Status del_min(BiTree &bt)-1分/ 刪除二叉排序樹 bt 中值最小的結(jié)點if (!bt) return ERROR;/ 空樹p = bt;if (bt-lchild = NULL) /根無左子樹-2分bt = bt-rchild;p-rlchild = NULL;/此語句可不要free(p);elsewhile(p-lchild != NULL)/p移至最左下結(jié)點q = p;p = p-lchild;if(p-rchild != NULL)/有右子樹-5分q-lchild = p-rchild;elseq-lchild = NULL;/無右子樹free(p);/del_min3.Status Create_dg(Algraph g1,Mgraph &g2)-1分/ 將鄰接表表示的有向圖 g1 轉(zhuǎn)換成數(shù)組表示的有向圖 g2g2.vexnum =

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論