版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)結(jié)構(gòu)作業(yè)題及參考答案數(shù)據(jù)結(jié)構(gòu)作業(yè)題及參考答案數(shù)據(jù)結(jié)構(gòu)作業(yè)題及參考答案數(shù)據(jù)結(jié)構(gòu)作業(yè)題及參考答案編制僅供參考審核批準(zhǔn)生效日期地址:電話:傳真:郵編:東北農(nóng)業(yè)大學(xué)網(wǎng)絡(luò)教育學(xué)院數(shù)據(jù)結(jié)構(gòu)作業(yè)題(一)一、選擇題(每題2分,共20分)1.在一個(gè)長(zhǎng)度為n的順序表的任一位置插入一個(gè)新元素的漸進(jìn)時(shí)間復(fù)雜度為()。A、O(n) B、O(n/2) C、O(1) D、O(n2)2.帶頭結(jié)點(diǎn)的單鏈表first為空的判定條件是()。A、first==NULL; B、first->link==NULL;C、first->link==first; D、first!=NULL;3.在一棵樹(shù)中,()沒(méi)有前驅(qū)結(jié)點(diǎn)。A、分支結(jié)點(diǎn) B、葉結(jié)點(diǎn) C、樹(shù)根結(jié)點(diǎn) D、空結(jié)點(diǎn)4.在有向圖中每個(gè)頂點(diǎn)的度等于該頂點(diǎn)的()。A、入度 B、出度C、入度與出度之和 D、入度與出度之差5.對(duì)于長(zhǎng)度為9的有序順序表,若采用折半搜索,在等概率情況下搜索成功的平均搜索長(zhǎng)度為()的值除以9。A、20 B、18 C、25 D、226.下列程序段的時(shí)間復(fù)雜度為()。s=0;for(i=1;i<n;i++)for(j=1;j<n;j++)s+=i*j;A、O(1) B、O(n) C、O(2n) D、O(n2)7.棧是一種操作受限的線性結(jié)構(gòu),其操作的主要特征是()。A、先進(jìn)先出 B、后進(jìn)先出 C、進(jìn)優(yōu)于出 D、出優(yōu)于進(jìn)8.假設(shè)以數(shù)組A[n]存放循環(huán)隊(duì)列的元素,其頭、尾指針?lè)謩e為front和rear。若設(shè)定尾指針指向隊(duì)列中的隊(duì)尾元素,頭指針指向隊(duì)列中隊(duì)頭元素的前一個(gè)位置,則當(dāng)前存于隊(duì)列中的元素個(gè)數(shù)為()。A、(rear-front-1)%n B、(rear-front)%nC、(front-rear+1)%n D、(rear-front+n)%n9.高度為5的完全二叉樹(shù)中含有的結(jié)點(diǎn)數(shù)至少為()。A、16 B、17 C、31 D、10.如圖所示有向圖的一個(gè)拓?fù)湫蛄惺?)A、ABCDEFB、FCBEADC、FEDCBAD、DAEBCF二、填空題(每空1分,共20分)1.n(n﹥0)個(gè)頂點(diǎn)的無(wú)向圖最多有條邊,最少有條邊。2.在一棵AVL樹(shù)中,每個(gè)結(jié)點(diǎn)的左子樹(shù)高度與右子樹(shù)高度之差的絕對(duì)值不超過(guò)。3.已知8個(gè)數(shù)據(jù)元素為(34,76,45,18,26,54,92,65),按照依次插入結(jié)點(diǎn)的方法生成一棵二叉排序樹(shù),則該樹(shù)的深度為。4.在二叉樹(shù)的第i層上至多有結(jié)點(diǎn)。5.對(duì)于一棵具有n個(gè)結(jié)點(diǎn)的二叉樹(shù),若一個(gè)結(jié)點(diǎn)的編號(hào)為i(1≤i≤n),則它的左孩子結(jié)點(diǎn)的編號(hào)為,右孩子結(jié)點(diǎn)的編號(hào)為,雙親結(jié)點(diǎn)的編號(hào)為。6.?dāng)?shù)據(jù)的存儲(chǔ)結(jié)構(gòu)被分為、、和四種。7.假定一棵樹(shù)的廣義表表示為A(B(C,D(E,F,G),H(I,J))),則樹(shù)中所含的結(jié)點(diǎn)數(shù)為個(gè),樹(shù)的深度為,樹(shù)的度為。8.在一個(gè)具有n個(gè)頂點(diǎn)的無(wú)向圖中,要連通所有頂點(diǎn)則至少需要條邊。9.在線性結(jié)構(gòu)、樹(shù)形結(jié)構(gòu)和圖形結(jié)構(gòu)中,前驅(qū)和后繼結(jié)點(diǎn)之間分別存在著、和的聯(lián)系。10.一棵含999個(gè)結(jié)點(diǎn)的完全二叉樹(shù)的深度為。三、運(yùn)算題(每題5分,共10分)1.設(shè)有一個(gè)1010的對(duì)稱矩陣A,將其下三角部分按行存放在一個(gè)一維數(shù)組B中,A[0][0]存放于B[0]中,那么A[8][5]存放于B中什么位置。2.已知一個(gè)有序表(15,26,34,39,45,56,58,63,74,76,83,94)順序存儲(chǔ)于一維數(shù)組a[12]中,根據(jù)折半搜索過(guò)程填寫成功搜索下表中所給元素34,56,58,63,94時(shí)的比較次數(shù)。元素值3456586394比較次數(shù)四、應(yīng)用題(每題10分,共50分)1.設(shè)待排序的記錄共7個(gè),排序碼分別為8,3,2,5,9,1,6。(1)用直接插入排序。試以排序碼序列的變化描述形式說(shuō)明排序全過(guò)程(動(dòng)態(tài)過(guò)程)要求按遞減順序排序。(2)用直接選擇排序。試以排序碼序列的變化描述形式說(shuō)明排序全過(guò)程(動(dòng)態(tài)過(guò)程)要求按遞減順序排序。2.判斷下列序列是否是堆(可以是小堆,也可以是大堆,若不是堆,請(qǐng)將它們調(diào)整為堆)。(1)100,85,98,77,80,60,82,40,20,10,66(2)100,98,85,82,80,77,66,60,40,20,10(3)100,85,40,77,80,60,66,98,82,10,20(4)10,20,40,60,66,77,80,82,85,98,1003.試找出分別滿足下列條件的所有二叉樹(shù)。1)先序序列和中序序列相同2)中序序列和后序序列相同3)先序序列和后序序列相同4)中序序列與層次遍歷序列相同4.設(shè)T是一棵二叉樹(shù),除葉子結(jié)點(diǎn)外,其它結(jié)點(diǎn)的度數(shù)皆為2,若T中有6個(gè)葉結(jié)點(diǎn),試問(wèn):(1)T樹(shù)的最大深度Kmax=?最小可能深度Kmin=?(2)T樹(shù)中共有多少非葉結(jié)點(diǎn)?
(3)若葉結(jié)點(diǎn)的權(quán)值分別為1,2,3,4,5,6。請(qǐng)構(gòu)造一棵哈曼夫樹(shù),并計(jì)算該哈曼夫樹(shù)的帶權(quán)路徑長(zhǎng)度wpl。5.一棵有n(n>0)個(gè)結(jié)點(diǎn)的d度樹(shù),若用多重鏈表表示,樹(shù)中每個(gè)結(jié)點(diǎn)都有d個(gè)鏈域,則在表示該樹(shù)的多重鏈表中有多少個(gè)空鏈域?yàn)槭裁磧?chǔ),則A[7,1]和A[2,4]的第一個(gè)字節(jié)的地址是多少數(shù)據(jù)結(jié)構(gòu)作業(yè)題(二)一、選擇題(每題2分,共20分)1.在一個(gè)單鏈表HL中,若要向表頭插入一個(gè)由指針p指向的結(jié)點(diǎn),則執(zhí)行()。A、HL=p;p->next=HL; B、p->next=HL;HL=p;C、p->next=HL;p=HL; D、p->next=HL->next;HL->next=p;2.由權(quán)值分別為3,8,6,2,5的葉子結(jié)點(diǎn)生成一棵哈夫曼樹(shù),它的帶權(quán)路徑長(zhǎng)度為()。A、24 B、48 C、72 D、533.一個(gè)數(shù)組元素a[i]與()的表示等價(jià)。A、*(a+i) B、a+i C、*a+i D、&a+i4.下面程序段的時(shí)間復(fù)雜度為()。for(inti=0;i<m;i++)for(intj=0;j<n;j++)a[i][j]=i*j;A、O(m2) B、O(n2) C、O(m*n) D、O(m+n)5.?dāng)?shù)據(jù)結(jié)構(gòu)是()。A、一種數(shù)據(jù)類型B、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)C、一組性質(zhì)相同的數(shù)據(jù)元素的集合D、相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合6.在線性表的下列運(yùn)算中,不改變數(shù)據(jù)元素之間結(jié)構(gòu)關(guān)系的運(yùn)算是()。A、插入 B、刪除 C、排序 D、定位7.若進(jìn)棧序列為1,2,3,4,5,6,且進(jìn)棧和出棧可以穿插進(jìn)行,則可能出現(xiàn)的出棧序列為()。A、3,2,6,1,4,5 B、3,4,2,1,6,5C、1,2,5,3,4,6 D、5,6,4,2,3,18.在任意一棵二叉樹(shù)的前序序列和后序序列中,各葉子之間的相對(duì)次序關(guān)系()。A、不一定相同 B、都相同 C、都不相同 D、互為逆序9.圖的鄰接矩陣表示法適用于表示()。A、無(wú)向圖 B、有向圖 C、稠密圖 D、稀疏圖10.若有序表的關(guān)鍵字序列為(b,c,d,e,f,g,q,r,s,t),則在二分查找關(guān)鍵字b的過(guò)程中,先后進(jìn)行比較的關(guān)鍵字依次為()。A、f,c,b B、f,d,b C、g,c,b D、g,d,b二、填空題(每空2分,共40分)1.含n個(gè)頂點(diǎn)的無(wú)向連通圖中至少含有條邊。2.若對(duì)關(guān)鍵字序列(43,02,80,48,26,57,15,73,21,24,66)進(jìn)行一趟增量為3的希爾排序,則得到的結(jié)果為。3.一個(gè)算法的時(shí)間復(fù)雜度為(3n2+2nlog2n+4n-7)/(5n),其數(shù)量級(jí)表示為。4.在以HL為表頭指針的帶表頭附加結(jié)點(diǎn)的單鏈表和循環(huán)單鏈表中,鏈表為空的條件分別為和。5.快速排序在平均情況下的時(shí)間復(fù)雜度為,在最壞情況下的時(shí)間復(fù)雜度為。6.假定對(duì)長(zhǎng)度n=50的有序表進(jìn)行二分查找,則對(duì)應(yīng)的判定樹(shù)高度為_(kāi)_______,判定樹(shù)中前5層的結(jié)點(diǎn)數(shù)為_(kāi)_______,最后一層的結(jié)點(diǎn)數(shù)為_(kāi)_______。7.假定一棵樹(shù)的廣義表表示為A(B(C,D(E,F,G),H(I,J))),則度為3、2、1、0的結(jié)點(diǎn)數(shù)分別為、、和個(gè)。8.在一棵二叉樹(shù)中,假定雙分支結(jié)點(diǎn)數(shù)為5個(gè),單分支結(jié)點(diǎn)數(shù)為6個(gè),則葉子結(jié)點(diǎn)數(shù)為個(gè)。9.?dāng)?shù)據(jù)的邏輯結(jié)構(gòu)被分為、、和四種。10.在一個(gè)長(zhǎng)度為n的順序存儲(chǔ)線性表中,向第i個(gè)元素(1≤i≤n+1)之前插入一個(gè)新元素時(shí),需要從后向前依次后移個(gè)元素。三、應(yīng)用題(每題10分,共60分)1.設(shè)有5個(gè)互不相同的元素a、b、c、d、e,能否通過(guò)7次比較就將其排好序?如果能,請(qǐng)列出其比較過(guò)程;如果不能,則說(shuō)明原因。2.有一隨機(jī)數(shù)組(25,84,21,46,13,27,68,35,20),現(xiàn)采用某種方法對(duì)它們進(jìn)行排序,其每趟排序結(jié)果如下,則該排序方法是什么初始:25,84,21,46,13,27,68,35,20第一趟:20,13,21,25,46,27,68,35,84第二趟:13,20,21,25,35,27,46,68,84第三趟:13,20,21,25,27,35,46,68,843.請(qǐng)?jiān)冢ǎ﹥?nèi)填入正確的排序方法。設(shè)一數(shù)組中原有數(shù)據(jù)如下:15,13,20,18,12,60。下面是一組由不同排序方法進(jìn)行一遍排序后的結(jié)果。()排序的結(jié)果為:12,13,15,18,20,60()排序的結(jié)果為:13,15,18,12,20,60()排序的結(jié)果為:13,15,20,18,12,604.設(shè)T是一棵二叉樹(shù),除葉子結(jié)點(diǎn)外,其它結(jié)點(diǎn)的度數(shù)皆為2,若T中有6個(gè)葉結(jié)點(diǎn),試問(wèn):(1)T樹(shù)的最大深度Kmax=?最小可能深度Kmin=?(2)T樹(shù)中共有多少非葉結(jié)點(diǎn)?
(3)若葉結(jié)點(diǎn)的權(quán)值分別為1,2,3,4,5,6。請(qǐng)構(gòu)造一棵哈曼夫樹(shù),并計(jì)算該哈曼夫樹(shù)的帶權(quán)路徑長(zhǎng)度wpl。5.一棵有n(n>0)個(gè)結(jié)點(diǎn)的d度樹(shù),若用多重鏈表表示,樹(shù)中每個(gè)結(jié)點(diǎn)都有d個(gè)鏈域,則在表示該樹(shù)的多重鏈表中有多少個(gè)空鏈域?yàn)槭裁?.有一個(gè)二維數(shù)組A[0:8,1:5],每個(gè)數(shù)組元素用相鄰的4個(gè)字節(jié)存儲(chǔ),存儲(chǔ)器按字節(jié)編址,假設(shè)存儲(chǔ)數(shù)組元素A[0,1]的第一個(gè)字節(jié)的地址是0,那么存儲(chǔ)數(shù)組的最后一個(gè)元素的第一個(gè)字節(jié)的地址是多少若按行存儲(chǔ),則A[3,5]和A[5,3]的第一個(gè)字節(jié)的地址是多少若按列存儲(chǔ),則A[7,1]和A[2,4]的第一個(gè)字節(jié)的地址是多少數(shù)據(jù)結(jié)構(gòu)作業(yè)題(三)一、單選題(每題2分,共10分)1、在長(zhǎng)度為n的順序存儲(chǔ)的線性表中,刪除第i個(gè)元素(1≤i≤n)時(shí),需要從前向后依次前移個(gè)元素。A、n-iB、n-i+1C、n-i-1D、i2、設(shè)一個(gè)廣義表中結(jié)點(diǎn)的個(gè)數(shù)為n,則求廣義表深度算法的時(shí)間復(fù)雜度為。A、O(1)B、O(n)C、O(n2)D、O(log2n)3、假定一個(gè)順序隊(duì)列的隊(duì)首和隊(duì)尾指針?lè)謩e為f和r,則判斷隊(duì)空的條件為。A、f+1==rB、r+1==fC、f==0D、f==r4、由3個(gè)結(jié)點(diǎn)可以構(gòu)造出多少種不同的二叉樹(shù)。A、2B、3C、4D、5 5、適用于折半查找的表的存儲(chǔ)方式及元素排列要求為。 A、鏈接方式存儲(chǔ),元素?zé)o序B.鏈接方式存儲(chǔ),元素有序 C、順序方式存儲(chǔ),元素?zé)o序D.順序方式存儲(chǔ),元素有序二、填空題(每空1分,共25分)1、在線性結(jié)構(gòu)、樹(shù)結(jié)構(gòu)和圖結(jié)構(gòu)中,前驅(qū)和后繼結(jié)點(diǎn)之間分別存在著、和的聯(lián)系。2、在線性表的單鏈接存儲(chǔ)中,若一個(gè)元素所在結(jié)點(diǎn)的地址為p,則其后繼結(jié)點(diǎn)的地址為,若假定p為一個(gè)數(shù)組a中的下標(biāo),則其后繼結(jié)點(diǎn)的下標(biāo)為。3、在初始化一個(gè)稀疏矩陣的函數(shù)定義中,矩陣形參應(yīng)說(shuō)明為參數(shù)。4、棧又稱為表,隊(duì)列又稱為表。5、后綴表達(dá)式“45+3*24+*”的值為。6、一棵深度為5的滿二叉樹(shù)中的結(jié)點(diǎn)數(shù)為個(gè),一棵深度為3的滿四叉樹(shù)中的結(jié)點(diǎn)數(shù)為個(gè)。7、對(duì)于一棵含有40個(gè)結(jié)點(diǎn)的理想平衡樹(shù),它的高度為。8、從一棵二叉搜索樹(shù)中查找一個(gè)元素時(shí),若元素的值等于根結(jié)點(diǎn)的值,則表明,若元素的值小于根結(jié)點(diǎn)的值,則繼續(xù)向查找,若元素的值大于根結(jié)點(diǎn)的值,則繼續(xù)向查找。9、對(duì)于一個(gè)具有n個(gè)頂點(diǎn)的圖,若采用鄰接矩陣表示,則矩陣大小為。10、對(duì)于一個(gè)具有n個(gè)頂點(diǎn)和e條邊的連通圖,其生成樹(shù)中頂點(diǎn)數(shù)和邊數(shù)分別為和。11、二分查找過(guò)程所對(duì)應(yīng)的判定樹(shù)既是一棵,又是一棵。12、在歸并排序中,進(jìn)行每趟歸并的時(shí)間復(fù)雜度為,整個(gè)排序過(guò)程的時(shí)間復(fù)雜度為,空間復(fù)雜度為。 13、給定一組數(shù)據(jù){6,2,7,10,3,12}以它構(gòu)造一棵哈夫曼樹(shù),則樹(shù)高為_(kāi)_________,帶權(quán)路徑長(zhǎng)度WPL的值為_(kāi)_________。三、運(yùn)算題(每題6分,共24分)1、假定一棵普通樹(shù)的廣義表表示為a(b(e),c(f(h,i,j),g),d),分別寫出先根、后根、按層遍歷的結(jié)果。先根:。后根:。按層:。2、已知一個(gè)帶權(quán)圖的頂點(diǎn)集V和邊集G分別為:V={0,1,2,3,4,5,6,7};E={(0,1)8,(0,2)5,(0,3)2,(1,5)6,(2,3)25,(2,4)13,(3,5)9,(3,6)10,(4,6)4,(5,7)20};則求出該圖的最小生成樹(shù)的權(quán)。最小生成樹(shù)的權(quán):。3、對(duì)于線性表(18,25,63,50,42,32,90,66)進(jìn)行散列存儲(chǔ)時(shí),若選用H(K)=K%9作為散列函數(shù),則散列地址為0的元素有個(gè),散列地址為3的元素有個(gè),散列地址為5的元素有個(gè)。4、假定一組記錄的排序碼為(46,79,56,38,40,80,25,34),在對(duì)其進(jìn)行快速排序的過(guò)程中,對(duì)應(yīng)二叉搜索樹(shù)的深度為,分支結(jié)點(diǎn)數(shù)為。四、閱讀算法(第一題7分,第二題8分)1、voidAA(LNode*&HL){InitList(HL);InsertRear(HL,30);InsertRear(HL,50);inta[5]={15,8,9,26,12};for(inti=0;i<5;i++)InsertFront(HL,a[i]);}該算法被調(diào)用執(zhí)行后,得到的以HL為表頭指針的單鏈表中的數(shù)據(jù)元素依次為:。2、voidAH(Heap&HBT,constElemTypeitem)ey);elseif(K<A[mid].key);else;}elsereturn-1;}六、編寫算法(14分)編寫在以BST為樹(shù)根指針的二叉搜索樹(shù)上進(jìn)行查找值為item的結(jié)點(diǎn)的非遞歸算法,若查找成功則由item帶回整個(gè)結(jié)點(diǎn)的值并返回true,否則返回false。boolFind(BTreeNode*BST,ElemType&item)數(shù)據(jù)結(jié)構(gòu)作業(yè)題(四)一、選擇題(每題2分,共20分)1.從邏輯上可以把數(shù)據(jù)結(jié)構(gòu)分為()兩大類。A.動(dòng)態(tài)結(jié)構(gòu)、靜態(tài)結(jié)構(gòu)B.順序結(jié)構(gòu)、鏈?zhǔn)浇Y(jié)構(gòu)C.線性結(jié)構(gòu)、非線性結(jié)構(gòu)D.初等結(jié)構(gòu)、構(gòu)造型結(jié)構(gòu)2.以下數(shù)據(jù)結(jié)構(gòu)中,哪一個(gè)是線性結(jié)構(gòu)()A.廣義表B.二叉樹(shù)C.稀疏矩陣D.串3.連續(xù)存儲(chǔ)設(shè)計(jì)時(shí),存儲(chǔ)單元的地址()。A.一定連續(xù)B.一定不連續(xù)C.不一定連續(xù)D.部分連續(xù),部分不連續(xù)4.若長(zhǎng)度為n的線性表采用順序存儲(chǔ)結(jié)構(gòu),在其第i個(gè)位置插入一個(gè)新元素的算法的時(shí)間復(fù)雜度為()。A.O(0)B.O(1)C.O(n)D.O(n2)5.在雙向鏈表指針p的結(jié)點(diǎn)前插入一個(gè)指針q的結(jié)點(diǎn)操作是()。A.p->Llink=q;q->Rlink=p;p->Llink->Rlink=q;q->Llink=q;B.p->Llink=q;p->Llink->Rlink=q;q->Rlink=p;q->Llink=p->Llink;C.q->Rlink=p;q->Llink=p->Llink;p->Llink->Rlink=q;p->Llink=q;D.q->Llink=p->Llink;q->Rlink=q;p->Llink=q;p->Llink=q;6.若一個(gè)棧的輸入序列為1,2,3,…,n,輸出序列的第一個(gè)元素是i,則第j個(gè)輸出元素是()。A.i-j-1B.i-jC.j-i+1D.不確定的7.有六個(gè)元素6,5,4,3,2,1的順序進(jìn)棧,問(wèn)下列哪一個(gè)不是合法的出棧序列()A.543612B.453126C.346521D.2341568.用鏈接方式存儲(chǔ)的隊(duì)列,在進(jìn)行刪除運(yùn)算時(shí)()。A.僅修改頭指針 B.僅修改尾指針C.頭、尾指針都要修改 D.頭、尾指針可能都要修改9.若用一個(gè)大小為6的數(shù)組來(lái)實(shí)現(xiàn)循環(huán)隊(duì)列,且當(dāng)前rear和front的值分別為0和3,當(dāng)從隊(duì)列中刪除一個(gè)元素,再加入兩個(gè)元素后,rear和front的值分別為多少(
)A.1和5B.2和4C.4和2D.5和110.棧和隊(duì)列的共同點(diǎn)是()。A.都是先進(jìn)先出B.都是先進(jìn)后出C.只允許在端點(diǎn)處插入和刪除元素D.沒(méi)有共同點(diǎn)二、填空題(每空2分,共30分)1.?dāng)?shù)據(jù)結(jié)構(gòu)中評(píng)價(jià)算法的兩個(gè)重要指標(biāo)是和。2.一個(gè)算法具有5個(gè)特性:、、,有零個(gè)或多個(gè)輸入、有一個(gè)或多個(gè)輸出。3.在一個(gè)長(zhǎng)度為n的順序表中第i個(gè)元素(1<=i<=n)之前插入一個(gè)元素時(shí),需向后移動(dòng)________個(gè)元素。4.對(duì)于雙向鏈表,在兩個(gè)結(jié)點(diǎn)之間插入一個(gè)新結(jié)點(diǎn)需修改的指針共______個(gè),單鏈表為_(kāi)______個(gè)。5.設(shè)數(shù)組a[1..50,1..80]的基地址為2000,每個(gè)元素占2個(gè)存儲(chǔ)單元,若以行序?yàn)橹餍蝽樞虼鎯?chǔ),則元素a[45,68]的存儲(chǔ)地址為_(kāi)_;若以列序?yàn)橹餍蝽樞虼鎯?chǔ),則元素a[45,68]的存儲(chǔ)地址為_(kāi)_。6.所謂稀疏矩陣指的是_______。7.廣義表的_______定義為廣義表中括弧的重?cái)?shù)。8.具有256個(gè)結(jié)點(diǎn)的完全二叉樹(shù)的深度為_(kāi)_____。9.已知一棵度為3的樹(shù)有2個(gè)度為1的結(jié)點(diǎn),3個(gè)度為2的結(jié)點(diǎn),4個(gè)度為3的結(jié)點(diǎn),則該樹(shù)有______個(gè)葉子結(jié)點(diǎn)。10.高度為8的完全二叉樹(shù)至少有______個(gè)葉子結(jié)點(diǎn)。三、計(jì)算題(每題6分,共30分)1.如果輸入序列為123456,試問(wèn)能否通過(guò)棧結(jié)構(gòu)得到以下兩個(gè)序列:435612和135426;請(qǐng)說(shuō)明為什么不能或如何才能得到。2.假定一棵二叉樹(shù)廣義表表示為a(b(c),d(e,f)),分別寫出對(duì)它進(jìn)行先序、中序、后序、按層遍歷的結(jié)果。先序:中序:后序:按層:3.已知一個(gè)圖的頂點(diǎn)集V和邊集G分別為:V={0,1,2,3,4,5,6,7};E={(0,1)8,(0,2)5,(0,3)2,(1,5)6,(2,3)25,(2,4)13,(3,5)9,(3,6)10,(4,6)4,(5,7)20,(6,7)30};按照普里姆算法從頂點(diǎn)0出發(fā)得到最小生成樹(shù),試寫出在生成最小生成樹(shù)的過(guò)程中依次得到的各條邊。________,________,________,________,________,________,________。4.已知一個(gè)圖的頂點(diǎn)集V和邊集G分別為:V={0,1,2,3,4,5,6,7,8};E={<0,2>,<1,3>,<1,4>,<2,4>,<2,5>,<3,6>,<3,7>,<4,7>,<4,8>,<5,7>,<6,7>,<7,8>};若存儲(chǔ)它采用鄰接表,并且每個(gè)頂點(diǎn)鄰接表中的邊結(jié)點(diǎn)都是按照終點(diǎn)序號(hào)從小到大的次序鏈接的,則按主教材中介紹的進(jìn)行拓?fù)渑判虻乃惴?,寫出得到的拓?fù)湫蛄校ㄌ崾荆合犬嫵鰧?duì)應(yīng)的圖形,然后再運(yùn)算)。拓?fù)湫蛄校?.假定一組記錄的排序碼為(46,79,56,38,40,80,25,34),則對(duì)其進(jìn)行快速排序的第一次劃分后的結(jié)果為_(kāi)_______________。四、算法填空(10分)1.五、編程(10分)1.設(shè)計(jì)算法以求解從集合{1..n}中選取k(k<=n)個(gè)元素的所有組合。例如,從集合{1..4}中選取2個(gè)元素的所有組合的輸出結(jié)果為:12,13,14,23,24,34。數(shù)據(jù)結(jié)構(gòu)作業(yè)題(五)一、選擇題(每題2分,共20分)1.若需要利用形參直接訪問(wèn)實(shí)參,則應(yīng)把形參變量說(shuō)明為()參數(shù)。A指針B引用C值2.在一個(gè)單鏈表HL中,若要在指針q所指結(jié)點(diǎn)的后面插入一個(gè)由指針p所指向的結(jié)點(diǎn),則執(zhí)行()。Aq一>next=p一>next;p一>next=q;Bp一>next=q一>next;q=p;C9一>next=p一>next;p一>next=q;Dp一>next=q一>next;q一>next=p;3.在一個(gè)順序隊(duì)列中,隊(duì)首指針指向隊(duì)首元素的()位置。A前一個(gè)B后一個(gè)C當(dāng)前4.向二叉搜索樹(shù)中插入一個(gè)元素時(shí),其時(shí)間復(fù)雜度大致為()。AO(1)BO(1og2n)CO(n)DO(nlog2n)5.假設(shè)有兩個(gè)串A和B,求B在A中首次出現(xiàn)的位置的操作,我們稱為()。A.連接 B.模式匹配 C.求子串 D.求串長(zhǎng)6.我們對(duì)記錄進(jìn)行排序的目的是()。A.分類 B.合并 C.存儲(chǔ) D.查找7.在最壞的情況下,冒泡排序法的時(shí)間復(fù)雜度為()。(lgn) (nlgn) (n2) (n)8.廣義表(A,B,E,F,G)的表尾是()。A.(B,E,F,G) B.() C.(A,B,E,F(xiàn),G) D.(G)9.線性表如果采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),要求內(nèi)存中的存儲(chǔ)單元的地址()。A.必須是連續(xù)的B.部分要求是連續(xù)的C.一定不是連續(xù)的D.可以是連續(xù)的,也可以是不連續(xù)的10.在數(shù)據(jù)結(jié)構(gòu)中,從邏輯結(jié)構(gòu)上,我們可以把數(shù)據(jù)結(jié)構(gòu)分為()。A.線性結(jié)構(gòu)和非線性結(jié)構(gòu)B.內(nèi)部結(jié)構(gòu)和外部結(jié)構(gòu)C.順序結(jié)構(gòu)和鏈?zhǔn)浇Y(jié)構(gòu)D.動(dòng)態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu)二、填空題(每空1分,共25分)1.?dāng)?shù)據(jù)的邏輯結(jié)構(gòu)被分為、、和四種。2.對(duì)于一個(gè)長(zhǎng)度為n的順序存儲(chǔ)的線性表,在表頭插入元素的時(shí)間復(fù)雜度為,在表尾插入元素的時(shí)間復(fù)雜度為。3.在一個(gè)稀疏矩陣中,每個(gè)非零元素所對(duì)應(yīng)的三元組包括該元素的、和三項(xiàng)。4.在廣義表的存儲(chǔ)結(jié)構(gòu)中,每個(gè)結(jié)點(diǎn)均包含有個(gè)域。5.當(dāng)用長(zhǎng)度為N的數(shù)組順序存儲(chǔ)一個(gè)棧時(shí),假定用top==N表示??眨瑒t表示棧滿的條件為。6.假定一棵三叉樹(shù)的結(jié)點(diǎn)個(gè)數(shù)為50,則它的最小深度為,最大深度為。7.在一棵二叉樹(shù)中,第5層上的結(jié)點(diǎn)數(shù)最多為。8.在一個(gè)小根堆中,堆頂結(jié)點(diǎn)的值是所有結(jié)點(diǎn)中的,在一個(gè)大根堆中,堆頂結(jié)點(diǎn)的值是所有結(jié)點(diǎn)中的。9.在一個(gè)具有n個(gè)頂點(diǎn)的無(wú)向圄中,要連通所有頂點(diǎn)則至少需要條邊。10.假定一個(gè)圖具有n個(gè)頂點(diǎn)和e條邊,貝采用鄰接矩陣、鄰接表和邊集數(shù)組表示時(shí),其相應(yīng)的空間復(fù)雜度分別為、和。11.以二分查找方法查找一個(gè)線性表時(shí),此線性表必須是存儲(chǔ)的表。12.在索引表中,若一個(gè)索引項(xiàng)對(duì)應(yīng)主表中的一條記錄,則稱此索引為表。13.快速排序在平均情況下的空間復(fù)雜度為,在最壞情況下的空間復(fù)雜度為。三、運(yùn)算題(每題5分,共20分)1.假定一個(gè)大堆為(56,38,42,30,25,40,35,20),則依次從中刪除兩個(gè)元素后得到的堆為。2.已知一個(gè)圖的頂點(diǎn)集V和邊集6分別為:V={0,1,2,3,4,5,6,7};E={(04)8,(0,2)5,(0,3)2,(1,5)6,(2,3)25,(2,4)13,(3,5)9,(3,6)10,(4,6)4,(5,7)20};按照克魯斯卡爾算法得到最小生成材,拭寫出在最小生成樹(shù)中依次得到的各條邊。,,,,,,。3.假定一組數(shù)據(jù)的初始堆為(84,79,56,42,40,46,50,38),請(qǐng)寫出在堆排序階段進(jìn)行前三次對(duì)換和篩運(yùn)算后數(shù)據(jù)的排列情況。數(shù)據(jù)排列情況:。4.假定一組記錄的徘序碼為(46,79,56,38,40,80,36,40,75,66,84,24),對(duì)其進(jìn)行歸并排序的過(guò)程中,第三趟歸并后的結(jié)果為:。四、閱讀算法,回答問(wèn)題(每題5分,共10分)1.voidAA(List&L){InitList(L);InsertRear(L,30);InsertFront(L,50);inta[4]={5,8,12,15}for(inti=0;1<4;i++=InsertRear(L,a[i]);}該算法被調(diào)用執(zhí)行后,得到的線性表L為:。2.voidAF(Queue&Q){InitQueue(Q):inta[4]={5,8,12,15}for(inti一0;i<4;i斗+=Qlnsert(Q,遷6);QInsert(Q,QDelete(Q));QInsert(Q,30);QInsert(Q,QDelete(Q)+10);whi1e(!QueueEmpty(Q))cout<<QDeleie(Q)<<”;}該算法被調(diào)用后得到的輸出結(jié)果為:。五、算法填空,在畫有橫線的地方填寫合適的內(nèi)容(10分)從一維數(shù)組A[n]上進(jìn)行快速排序的遞歸算法。voidQuickSort(ElemTypeA[],ints,intt){inti=sj=t十1;ElemTypex=A[s];d0{doi++;while;//填寫一個(gè)循環(huán)條件doj--;while(A[j].stn>x.stn);if(I<j){ElemTypetemp=A[i];A[i]=A[j];A[j]=temp;}}while(i<j);A[s]=A[j];A[j]=x;if(s<i一1);if(j十1<t);}六、編寫算法(15分)編寫一個(gè)遞歸算法,統(tǒng)計(jì)并返回以BT為樹(shù)根指針的二叉樹(shù)中的葉子結(jié)點(diǎn)的個(gè)數(shù)。intCount(BTreeNode*BT)東北農(nóng)業(yè)大學(xué)網(wǎng)絡(luò)教育學(xué)院數(shù)據(jù)結(jié)構(gòu)作業(yè)題參考答案習(xí)題一參考答案一、選擇題(每題2分,共20分)12345678910ABCCCDBBAB二、填空題(每題1分,共20分)1.n(n-1)/2;02.13. 54.2i-15.2i;2i+1;i/26.順序;鏈接;索引;散列7.10;4;38.n-19.一對(duì)一;一對(duì)多;多對(duì)多10.10三、運(yùn)算題(每題5分,共10分)1.根據(jù)題意,矩陣A中當(dāng)元素下標(biāo)I與J滿足I≥J時(shí),任意元素A[I][J]在一維數(shù)組B中的存放位置為I*(I+1)/2+J,因此,A[8][5]在數(shù)組B中位置為 8*(8+1)/2+5=41。2.判斷結(jié)果元素值3456586394比較次數(shù)21344四、應(yīng)用題(每題10分,共50分)1.答: (1)直接插入排序第一趟 (3)[8,3],2,5,9,1,6第二趟 (2)[8,3,2],5,9,1,6第三趟 (5)[8,5,3,2],9,1,6第四趟 (9)[9,8,5,3,2],1,6第五趟 (1)[9,8,5,3,2,1],6第六趟 (6)[9,8,6,5,3,2,1](2)直接選擇排序(第六趟后僅剩一個(gè)元素,是最小的,直接選擇排序結(jié)束)第一趟 (9)[9],3,2,5,8,1,6第二趟 (8)[9,8],2,5,3,1,6第三趟 (6)[9,8,6],5,3,1,2第四趟 (5)[9,8,6,5],3,1,2第五趟 (3)[9,8,6,5,3],1,2第六趟 (2)[9,8,6,5,3,2],12.(1)是大堆;(2)是大堆;(4)是小堆;(3)不是堆,調(diào)成大堆100,98,66,85,80,60,40,77,82,10,203.答:先序遍歷二叉樹(shù)的順序是“根—左子樹(shù)—右子樹(shù)”,中序遍歷“左子樹(shù)—根—右子樹(shù)”,后序遍歷順序是:“左子樹(shù)—右子樹(shù)―根",根據(jù)以上原則,本題解答如下:(1)若先序序列與后序序列相同,則或?yàn)榭諛?shù),或?yàn)橹挥懈Y(jié)點(diǎn)的二叉樹(shù)(2)若中序序列與后序序列相同,則或?yàn)榭諛?shù),或?yàn)槿我唤Y(jié)點(diǎn)至多只有左子樹(shù)的二叉樹(shù).(3)若先序序列與中序序列相同,則或?yàn)榭諛?shù),或?yàn)槿我唤Y(jié)點(diǎn)至多只有右子樹(shù)的二叉樹(shù).(4)若中序序列與層次遍歷序列相同,則或?yàn)榭諛?shù),或?yàn)槿我唤Y(jié)點(diǎn)至多只有右子樹(shù)的二叉樹(shù)4.答:(1)T樹(shù)的最大深度Kmax=6(除根外,每層均是兩個(gè)結(jié)點(diǎn))T樹(shù)的最小深度Kmin=4(具有6個(gè)葉子的完全二叉樹(shù)是其中的一種形態(tài))(2)非葉子結(jié)點(diǎn)數(shù)是5。(n2=n0-1)(3)哈夫曼樹(shù)見(jiàn)下圖,其帶權(quán)路徑長(zhǎng)度wpl=51 Wpl=4*3+3*3+2*(4+5+6)=5144561235.答:n(n>0)個(gè)結(jié)點(diǎn)的d度樹(shù)共有nd個(gè)鏈域,除根結(jié)點(diǎn)外,每個(gè)結(jié)點(diǎn)均有一個(gè)指針?biāo)?,故該?shù)的空鏈域有nd-(n-1)=n(d-1)+1個(gè)。習(xí)題二參考答案一、選擇題(每題2分,共20分)12345678910BDACDDBBCA二、填空題(每空2分,共40分)1.n-12.(15,02,21,24,26,57,43,66,81,48,73)3.O(n)4.HL->next==NULLHL->next==HL5.O(nlog2n);O(n2)6.6;31;197.2;1;1;68.69.集合結(jié)構(gòu);線性結(jié)構(gòu);樹(shù)型結(jié)構(gòu);圖形結(jié)構(gòu)10.n-i+1三、應(yīng)用題(每題10分,共60分)1.答:可以做到。取a與b進(jìn)行比較,c與d進(jìn)行比較。設(shè)a>b,c>d(a<b和c<d情況類似),此時(shí)需2次比較,取b和d比較,若b>d,則有序a>b>d;若b<d時(shí)則有序c>d>b,此時(shí)已進(jìn)行了3次比較。再把另外兩個(gè)元素按折半插入排序方法,插入到上述某個(gè)序列中共需4次比較,從而共需7次比較。2.該排序方法為快速排序。3.①快速排序②冒泡排序③直接插入排序4.答:(1)T樹(shù)的最大深度Kmax=6(除根外,每層均是兩個(gè)結(jié)點(diǎn))T樹(shù)的最小深度Kmin=4(具有6個(gè)葉子的完全二叉樹(shù)是其中的一種形態(tài))456123(2)非葉子結(jié)點(diǎn)數(shù)是456123(3)哈夫曼樹(shù)見(jiàn)下圖,其帶權(quán)路徑長(zhǎng)度wpl=51 Wpl=4*3+3*3+2*(4+5+6)=515.答:n(n>0)個(gè)結(jié)點(diǎn)的d度樹(shù)共有nd個(gè)鏈域,除根結(jié)點(diǎn)外,每個(gè)結(jié)點(diǎn)均有一個(gè)指針?biāo)?,故該?shù)的空鏈域有nd-(n-1)=n(d-1)+1個(gè)。6.答:(1)176(2)76和108(3)28和116。習(xí)題三參考答案一、單選題(每題2分,共10分)1、A2、B3、D 4、D 5、D二、填空題(每空1分,共25分)1、1:11:NM:N(或者1對(duì)11對(duì)NM對(duì)N)2、p->nexta[p].next3、引用4、后進(jìn)先出先進(jìn)先出5、1626、31217、68、查找成功左子樹(shù)右子樹(shù)9、n210、nn-111、二叉搜索樹(shù)理想平衡樹(shù)(次序無(wú)先后)12、O(n)O(nlog2n)O(n) 13、5 96三、運(yùn)算題(每題6分,共24分)1、先根:a,b,e,c,f,h,i,j,g,d;(2分)后根:e,b,h,i,j,f,g,c,d,a;(2分)按層:a,b,c,d,e,f,g,h,i,j;(2分)2、最小生成樹(shù)的權(quán):553、3124、56四、閱讀算法,回答問(wèn)題(第一題7分,第二題8分)1、(12,26,9,8,15,30,50)2、向HBT堆中插入一個(gè)值為item的元素,使得插入后仍是一個(gè)堆。五、算法填空,在畫有橫線的地方填寫合適的內(nèi)容(12分)returnmidreturnBinsch(A,low,mid-1,K)returnBinsch(A,mid+1,high,K)六、編寫算法(14分)評(píng)分標(biāo)準(zhǔn):請(qǐng)根據(jù)編程情況酌情給分。boolFind(BTreeNode*BST,ElemType&item){while(BST!=NULL){if(item==BT->data){item=BST->data;returntrue;
溫馨提示
- 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年家電電商合作協(xié)議書
- 法律行業(yè)智能訴訟輔助與案件管理系統(tǒng)方案
- 金融產(chǎn)品代理銷售協(xié)議
- 汽車租賃協(xié)議書合同
- 時(shí)尚服裝品牌營(yíng)銷策略及品牌形象設(shè)計(jì)
- 新興行業(yè)人才引進(jìn)與培養(yǎng)戰(zhàn)略規(guī)劃方案
- 鐵路貨運(yùn)項(xiàng)目承包合作協(xié)議
- 引進(jìn)外資項(xiàng)目合同
- 企業(yè)市場(chǎng)調(diào)研方法及數(shù)據(jù)分析應(yīng)用實(shí)踐
- 地?zé)崮荛_(kāi)發(fā)利用項(xiàng)目協(xié)議
- 四年級(jí)下冊(cè)混合運(yùn)算100道及答案
- 浙江省寧波市慈溪市2023-2024學(xué)年八年級(jí)上學(xué)期期末數(shù)學(xué)試題(含答案)
- 【小學(xué)心理健康教育分析國(guó)內(nèi)外文獻(xiàn)綜述4100字】
- 藝術(shù)療愈行業(yè)分析
- 中醫(yī)院肺病科年度工作計(jì)劃
- 老年綜合評(píng)估知情同意書
- 會(huì)議籌備工作分工表
- 2023火電機(jī)組深度調(diào)峰工況下的涉網(wǎng)性能技術(shù)要求
- 醫(yī)學(xué)英語(yǔ)術(shù)語(yǔ)解密-福建醫(yī)科大學(xué)中國(guó)大學(xué)mooc課后章節(jié)答案期末考試題庫(kù)2023年
- 內(nèi)燃機(jī)車點(diǎn)檢方法探討
- 2023初一語(yǔ)文現(xiàn)代文閱讀理解及解析:《貓》
評(píng)論
0/150
提交評(píng)論