數(shù)據(jù)結(jié)構(gòu)Ch6習(xí)題答案_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)Ch6習(xí)題答案_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)Ch6習(xí)題答案_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)Ch6習(xí)題答案_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)Ch6習(xí)題答案_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Ch6樹一、選擇題:1下列關(guān)于哈夫曼樹的敘述,錯(cuò)誤的是( C )。A哈夫曼樹根結(jié)點(diǎn)的權(quán)值等于所有葉結(jié)點(diǎn)權(quán)值之和。B具有n個(gè)葉結(jié)點(diǎn)的哈夫曼樹共有2n-1個(gè)結(jié)點(diǎn)。C哈夫曼樹是一棵二叉樹,因此它的結(jié)點(diǎn)的度可以為0,1,2。 D哈夫曼樹是帶權(quán)路徑長(zhǎng)度最短的二叉樹。2由3個(gè)結(jié)點(diǎn)可以構(gòu)成多少棵不同形態(tài)的二叉樹( C )。 A3 B4 C5 D6 3如果一棵二叉樹結(jié)點(diǎn)的前序序列是A,B,C,后序序列是C,B,A,則該二叉樹結(jié)點(diǎn)的中序序列是( D )。 AA,B,C BA,C,B CB,C,A D不能確定4如圖所示的4棵二叉樹中,( B )不是完全二叉樹。 A B C D5二叉樹按某種順序線索化后,任一結(jié)點(diǎn)均

2、有指向其前趨和后繼的線索,這種說法( B )A正確 B錯(cuò)誤若結(jié)點(diǎn)有左子樹,則令其lchild指針指示其左孩子;若結(jié)點(diǎn)沒有左子樹,則令其lchild指針指示其前驅(qū);若結(jié)點(diǎn)有右子樹,則令其rchild指針指示其右孩子;若結(jié)點(diǎn)沒有右子樹,則令其rchild指針指示其后繼。6二叉樹的前序遍歷序列中,任意一個(gè)結(jié)點(diǎn)均處在其子女結(jié)點(diǎn)的前面,這種說法( A )。A正確 B錯(cuò)誤7對(duì)一棵70個(gè)結(jié)點(diǎn)的完全二叉樹,它有( A )個(gè)葉子結(jié)點(diǎn)。A35 B40 C30 D448設(shè)一棵二叉樹中,度為1的結(jié)點(diǎn)數(shù)為9,則該二叉樹的葉子結(jié)點(diǎn)的數(shù)目為( D )。A10 B11 C12 D不確定n0=n2+19假定根結(jié)點(diǎn)的層次為0,含

3、有15個(gè)結(jié)點(diǎn)的二叉樹最小高度為( A )。 A3 B4 C5 D6假定根結(jié)點(diǎn)的層次為1,含有15個(gè)結(jié)點(diǎn)的二叉樹最小高度為410若一棵二叉樹中,度為2的結(jié)點(diǎn)數(shù)為9,該二叉樹的葉子結(jié)點(diǎn)的數(shù)目為( A )。A10 B11 C12 D不確定n0=n2+111設(shè)根結(jié)點(diǎn)的層次為0,則高度為k的二叉樹的最大結(jié)點(diǎn)數(shù)為(C )。 A2k-1 B2k C2k+1-1 D2k+1若設(shè)根結(jié)點(diǎn)的層次為1,則這棵樹的高度為k+1,高度為k+1的二叉樹的最大結(jié)點(diǎn)數(shù)為2k+1-112以知某二叉樹的后序遍歷序列為abdec,先序遍歷序列為cedba,它的中序遍歷序列為( D )。 Adebac Bacbed Cdecba D不

4、確定13設(shè)高度為h的二叉樹上只有度為0和度為2的結(jié)點(diǎn),則此二叉樹所包含的結(jié)點(diǎn)數(shù)至少為( B )。 A2h B2h-1 C2h+1 Dh+114設(shè)n,m為一棵二叉樹上的兩個(gè)結(jié)點(diǎn),在中序遍歷時(shí),n在m前的條件是( C )。An在m右方 Bn是m祖先 Cn在m左方 Dn是m子孫15將一棵有100個(gè)結(jié)點(diǎn)的完全二叉樹從上到下,從左到右依次對(duì)結(jié)點(diǎn)進(jìn)行編號(hào),根結(jié)點(diǎn)的編號(hào)為49的結(jié)點(diǎn)的左孩子編號(hào)為( A )。 A98 B99 C50 D4816某二叉樹的前序和后序序列正好相反,則該二叉樹一定是( B )二叉樹。A 空或只有一個(gè)結(jié)點(diǎn) B高度等于其結(jié)點(diǎn)數(shù) C任一結(jié)點(diǎn)無左孩子 D任一結(jié)點(diǎn)無右孩子17對(duì)于一棵滿二叉樹

5、,m個(gè)樹葉,n個(gè)結(jié)點(diǎn),深度為h,則( C )。Ah+m=2n Bm=h-1 Cn=2h-1 Dn=h+m18判斷線索二叉樹中某結(jié)p有左孩子的條件是( C )。Ap!=null Bp->lchild!=null Cp->ltag=0 Dp->ltag=119實(shí)現(xiàn)任意二叉樹的后序非遞歸算法而不使用堆棧結(jié)構(gòu),最佳方案是二叉樹采用( C )存儲(chǔ)結(jié)構(gòu)。A二叉鏈表 B廣義存儲(chǔ)結(jié)構(gòu) C三叉鏈表 D順序存儲(chǔ)結(jié)構(gòu)20在一棵二叉樹結(jié)點(diǎn)的先序遍歷序列,中序遍歷序列和后序遍歷序列中,所有的葉子結(jié)點(diǎn)的先后順序( B )。A都不相同 B完全相同 C先序和中序相同,而與后序不同 D中序和后序相同,而與先序

6、不同21下圖所示FF是森林F轉(zhuǎn)換而來的二叉樹,那么F 一共有( C )個(gè)葉子結(jié)點(diǎn)。A4 B5 C6 D722在一非空二叉樹的中序遍歷序列中,根結(jié)點(diǎn)的右邊( A )。A只有右子樹上的所有結(jié)點(diǎn) B只有右子樹上的部分結(jié)點(diǎn) C只有左子樹上的所有結(jié)點(diǎn) D只有左子樹上的部分結(jié)點(diǎn)23設(shè)森林F中有3棵樹,其第一,第二和第三棵樹的結(jié)點(diǎn)個(gè)數(shù)分別是n1,n2和n3,則與森林F相對(duì)應(yīng)的二叉樹根結(jié)點(diǎn)的右子樹上的結(jié)點(diǎn)個(gè)數(shù)是( D )。 An1 Bn1+n2 Cn3 Dn2+n324假定一棵二叉樹的結(jié)點(diǎn)數(shù)為18,則它的最小高度為(C )。A18 B8 C5 D4第1層 第2層 第3層 第4層 第5層1 2 4 8 325樹

7、最合適用來表示(C )。A有序數(shù)據(jù)元素 B無序數(shù)據(jù)元素 C元素之間具有分支層次關(guān)系的數(shù)據(jù) D元素之間無聯(lián)系的數(shù)據(jù)26以下有關(guān)數(shù)據(jù)結(jié)構(gòu)的敘述正確的是(C )。 A線性表的線性存儲(chǔ)結(jié)構(gòu)優(yōu)于鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)B二叉樹的第i層上有 2i-1個(gè)結(jié)點(diǎn),深度為k的二叉樹上有2k-1個(gè)結(jié)點(diǎn)。C二維數(shù)組是其數(shù)據(jù)元素為線性表的線性表。 D棧的操作方式是先進(jìn)先出。二填空題1有一棵樹如圖示,回答下面問題:(1) 這棵樹的根結(jié)點(diǎn)是(A);(2)這棵樹的葉子結(jié)點(diǎn)是(B,E,H,G);(3)結(jié)點(diǎn)C的度是(2);(4)這棵樹的度是(3);(5)這棵樹的深度是(4);(6)結(jié)點(diǎn)C的孩子是(E,F),子孫是(E,F,H);(7)結(jié)點(diǎn)F

8、的父親是(C),祖先是(A,C)。2二叉樹的每一個(gè)結(jié)點(diǎn)至多有(2)棵子樹,且子樹有(左右)之分。3樹的結(jié)點(diǎn)包含一個(gè)(數(shù)據(jù)元素)及若干指向其(子樹)的分支,結(jié)點(diǎn)擁有的子樹數(shù)稱為(度),度為0的結(jié)點(diǎn)稱為(樹葉或終端結(jié)點(diǎn)),度不為0的結(jié)點(diǎn)稱為(非終端結(jié)點(diǎn)或分支結(jié)點(diǎn))。 4對(duì)二叉樹來說,第k層上至多有(2k-1)個(gè)結(jié)點(diǎn)。5前序遍歷序列為abc的不同二叉樹有(5)種不同形態(tài)。6二叉樹的前序遍歷序列為I J KL MNO,中序遍歷序列為J LK I NMO,則后序遍歷序列為(LKJNOMI)。7一棵樹轉(zhuǎn)化為一棵二叉樹后,二叉樹沒有(右)子樹。8一棵含有n個(gè)結(jié)點(diǎn)的完全二叉樹,它的高度是(log2n+1)。

9、一棵含有n個(gè)結(jié)點(diǎn)的完全二叉樹,它的高度是(log2n+1)。 h-1層最后一個(gè)結(jié)點(diǎn)的編號(hào)2h-1-1 h層第一個(gè)結(jié)點(diǎn)的編號(hào)2h-1 h層最后一個(gè)結(jié)點(diǎn)的編號(hào)2h-1 2h-1n2h-1n2h-1hlogn+1h= logn+1n=2k-1=>k= log2(n+1)9深度為k的二叉樹至多有(2k-1)個(gè)結(jié)點(diǎn)。10含有n個(gè)結(jié)點(diǎn)的二叉樹用二叉鏈表表示,有(n+1)個(gè)空鏈域。有2n個(gè)鏈域有n-1個(gè)非空鏈域11哈夫曼樹是帶權(quán)路徑長(zhǎng)度(最短)的二叉樹。 12具有m個(gè)葉子結(jié)點(diǎn)的哈夫曼樹共(2m-1)個(gè)結(jié)點(diǎn)。13前序?yàn)閍,b,c且后序?yàn)閏,b,a的二叉樹有(4)棵。14樹和二叉樹從定義上說是兩種不同的數(shù)

10、據(jù)結(jié)構(gòu),那么將樹轉(zhuǎn)化為二叉樹的基本目的是(利用已有的二叉樹的算法來解決樹的有關(guān)問題)。15深度為k的完全二叉樹至多有(2k-1)個(gè)結(jié)點(diǎn);至少有(2k-1)個(gè)結(jié)點(diǎn),若按自上而下,從左到右的次序給結(jié)點(diǎn)編號(hào)(從1開始),則編號(hào)最小的葉子結(jié)點(diǎn)的編號(hào)是(2k-2+1)。16已知完全二叉樹的第8層有8個(gè)結(jié)點(diǎn),則其葉子結(jié)點(diǎn)數(shù)為(68)個(gè)。第7層的葉結(jié)點(diǎn)總數(shù):26-4第8層的葉結(jié)點(diǎn)總數(shù):817已知完全二叉樹的第7層有10個(gè)葉子結(jié)點(diǎn),則整個(gè)二叉樹的結(jié)點(diǎn)個(gè)數(shù)最多為(235)個(gè)。18已知二叉樹有50個(gè)葉子結(jié)點(diǎn),且僅有一個(gè)孩子的結(jié)點(diǎn)數(shù)為30,則總結(jié)點(diǎn)數(shù)為(129)。設(shè)度為i的結(jié)點(diǎn)有ni個(gè),共n個(gè)結(jié)點(diǎn)有n0+n1+n2

11、=n(結(jié)點(diǎn)總數(shù))0*n0+1*n1+2*n2=n-1(邊數(shù))所以:n0=n2+1n1=3019用數(shù)組A1n順序存儲(chǔ)完全二叉樹的各結(jié)點(diǎn),則當(dāng)i (n-1)/2時(shí),結(jié)點(diǎn)Ai的右孩子是結(jié)點(diǎn)(A2i+1)。20一棵二叉樹結(jié)點(diǎn)的前序序列為A,B,D,E,G,C,F(xiàn),H,I,中序序列為D,B,G,E,A,C,H,F(xiàn),I,則該二叉樹結(jié)點(diǎn)的后序序列為(DGEBHIFCA)。21有m個(gè)葉子結(jié)點(diǎn)的哈夫曼樹上的結(jié)點(diǎn)數(shù)是(2m-1)。22設(shè)樹T的度為4,其中度為1,2,3和4的結(jié)點(diǎn)個(gè)數(shù)分別為4,2,1和1,則T中葉子結(jié)點(diǎn)的個(gè)數(shù)為(8)。設(shè)度為i的結(jié)點(diǎn)有ni個(gè)n1=4 n2=2 n3=1 n4=1n0+n1+n2+n3

12、+n4=nn-1=0*n0+1*n1+2*n2+3*n3+4*n4236個(gè)結(jié)點(diǎn)可構(gòu)造出 132 種不同形態(tài)的二叉樹。 高度:6高度:5高度:4高度:324在一棵高度為3的四叉樹中,最多含有 21 結(jié)點(diǎn)。 1+1*4+1*4*425一棵樹的廣義表表示為a (b (c, d (e, f), g (h) ), i(j, k (x, y) ) ),結(jié)點(diǎn)f的層數(shù)為 3 。假定根結(jié)點(diǎn)的層數(shù)為0。 26一棵樹的廣義表表示為a (b (c, d (e, f), g (h) ), i(j, k (x, y) ) ),結(jié)點(diǎn)k的所有祖先的結(jié)點(diǎn)數(shù)為 2 個(gè)。 27假定一棵三叉樹(即度為3的樹)的結(jié)點(diǎn)個(gè)數(shù)為50,則它的

13、最小高度為 4 。假定根結(jié)點(diǎn)的高度為0。 第一層:30=1個(gè)結(jié)點(diǎn)第二層:1×3=31=3個(gè)結(jié)點(diǎn)第三層:1×3×3=32=9個(gè)結(jié)點(diǎn)第四層:1×3×3×3=33=27個(gè)結(jié)點(diǎn)-前四層,共40個(gè)結(jié)點(diǎn)第五層:50-40=10個(gè)結(jié)點(diǎn)28對(duì)于一棵具有n個(gè)結(jié)點(diǎn)的樹,該樹中所有結(jié)點(diǎn)的度數(shù)之和為 n-1 。 即求邊數(shù)29設(shè)二叉樹根的高度為1,則:高度為h的完全二叉樹的不同二叉樹棵數(shù): 2h-1 ,(即最后一層分別有1,2,2h-1個(gè)結(jié)點(diǎn)的完全二叉樹)高度為h的滿二叉樹的不同二叉樹棵數(shù): 1 。三判斷題1(×)二叉樹是一棵無序樹。 2(×

14、;)若有一個(gè)結(jié)點(diǎn)是二叉樹中某個(gè)子樹的前序遍歷結(jié)果序列的最后一個(gè)結(jié)點(diǎn),則它一定是該子樹的中序遍歷結(jié)果序列的最后一個(gè)結(jié)點(diǎn)。 3()在一棵二叉樹中,假定每個(gè)結(jié)點(diǎn)只有左子女,沒有右子女,對(duì)它分別進(jìn)行中序遍歷和后序遍歷,則具有相同的遍歷結(jié)果。 4()在樹的存儲(chǔ)中,若使每個(gè)結(jié)點(diǎn)帶有指向前驅(qū)結(jié)點(diǎn)的指針,將在算法中為尋找前驅(qū)結(jié)點(diǎn)帶來方便。 5()二叉樹是樹的特殊情形。 6(×)對(duì)于一棵具有n個(gè)結(jié)點(diǎn)的任何二叉樹,進(jìn)行前序、中序或后序的任一種次序遍歷的空間復(fù)雜度為O(log2n)。 7(×)對(duì)于一棵具有n個(gè)結(jié)點(diǎn),其高度為h的二叉樹,進(jìn)行任一種次序遍歷的時(shí)間復(fù)雜度為O(h)。 8(×)

15、若有一個(gè)葉子結(jié)點(diǎn)是二叉樹中某個(gè)子樹的前序遍歷結(jié)果序列的最后一個(gè)結(jié)點(diǎn),則它一定是該子樹的中序遍歷結(jié)果序列的最后一個(gè)結(jié)點(diǎn)。 9()線索化二叉樹中的每個(gè)結(jié)點(diǎn)通常包含有5個(gè)數(shù)據(jù)成員。 10(×)若有一個(gè)結(jié)點(diǎn)是二叉樹中某個(gè)子樹的中序遍歷結(jié)果序列的最后一個(gè)結(jié)點(diǎn),則它一定是該子樹的前序遍歷結(jié)果序列的最后一個(gè)結(jié)點(diǎn)。 四其他1二叉樹的遍歷方法有哪幾種,分別簡(jiǎn)訴其遍歷步驟。二叉樹的遍歷方法有先序遍歷、中序遍歷、后序遍歷三種。(1)先序遍歷二叉樹算法是:若二叉樹為空,則空操作;否則訪問根結(jié)點(diǎn)(D);先序遍歷左子樹(L);先序遍歷右子樹(R)。(2)中序遍歷二叉樹算法是:若二叉樹為空,則空操作;否則中序遍歷

16、左子樹(L);訪問根結(jié)點(diǎn)(D);中序遍歷右子樹(R)。(3)后序遍歷二叉樹算法是:若二叉樹為空,則空操作;否則后序遍歷左子樹(L);后序遍歷右子樹(R);訪問根結(jié)點(diǎn)(D)。2若按中序遍歷二叉樹的結(jié)果為A,C,B。作出所有能得到這一遍歷結(jié)果的二叉樹。3二叉樹結(jié)點(diǎn)數(shù)據(jù)采用順序存儲(chǔ)結(jié)構(gòu),存儲(chǔ)數(shù)組中,如圖所示,畫出該二叉樹的二叉鏈?zhǔn)奖硎拘问健?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21eafdgcjhib4已知一棵樹的雙親表示如下,其中各兄弟結(jié)點(diǎn)是從左到右依次出現(xiàn)的,畫出該樹及對(duì)應(yīng)的二叉樹。5寫出二叉樹的先序,中序和后序遍歷序列,并將該二

17、叉樹分解為森林。二叉樹的先序遍歷序列:ABCDEFGHI二叉樹的中序遍歷序列:BDCAFEHIG二叉樹的后序遍歷序列:DCBFIHGEA對(duì)應(yīng)的森林:6以知一棵二叉樹的先序遍歷序列為ABECDFGHIJ,中序遍歷序列為EBCDAFHIGJ,試畫出這棵二叉樹,并寫出其后序遍歷序列。后序遍歷序列為:EDCBIHJGFA7畫以數(shù)據(jù)集4,5,6,7,10,12,18為結(jié)點(diǎn)權(quán)值所構(gòu)造的哈夫曼樹,并求其帶權(quán)路徑長(zhǎng)度WPL。8設(shè)用于通訊的電文僅有8個(gè)字母組成,字母在電文中出現(xiàn)的頻率分別為7,19,2,6,32,3,21,10。試為這8個(gè)字母設(shè)計(jì)哈夫曼編碼。9有一棵二叉樹,其中序和后序遍歷序列分別為dgbaec

18、hif,gdbeihfca。畫出該二叉樹,對(duì)該二叉樹進(jìn)行先序線索化,并求該二叉樹所對(duì)應(yīng)的森林。10二叉樹以二叉鏈表結(jié)構(gòu)存儲(chǔ),在下列中序遍歷序列算法中填上正確的語句。 Status in_order (BiTree p)if ( p !=NULL) (1)in_order(p->lchild) ; printf ( p->data); (2)in_order(p->rchild) ; 11以二叉鏈表作為存儲(chǔ)結(jié)構(gòu),試完成下列程序(1)下列函數(shù)是中序輸出二叉樹的各結(jié)點(diǎn),讀程序并在每一個(gè)空格初填寫一個(gè)語句或表達(dá)式。 void printtree (BiTree BT) BiTnode

19、 *p;InitStack (s ); /構(gòu)造棧sp=(1) BT ; s.top=0;while (p | s.top!=0) while (2) p!=NULL ) s.elems.top+=p; (3) p=p->lchild ; if (s.top>0)(4)p=s.elem-top ; printf (“%d”, p->data); (5)p=p->rchild ; (2)所謂二叉樹T1和T2是等價(jià)的,那就是說,或者T1和T2都是空的二叉樹;或者T1和T2都是非空的二叉樹,且T1和T2的根結(jié)點(diǎn)的值相同,同時(shí)T1和T2的根結(jié)點(diǎn)的左子樹是等價(jià)的,且T1和T2的根結(jié)

20、點(diǎn)的右子樹也是等價(jià)的。下面給出了判斷二叉樹T1和T2是否等價(jià)的程序。讀程序并在每一個(gè)空格初填寫一個(gè)語句或表達(dá)式。 int equalbitre (BiTree t1, BiTree t2 ) int equal=0; if (t1= =null &&(1) t2=null ) equal=1; else if (t1!= null &&(2) t2!=null) if (t1->data= =t2->data) if (equalbitre ( t1->lchild, t2->lchild) (3) if (equalbitre ( t1

21、->rchild, t2->rchild)equal=1; return equal; 12一棵用二叉鏈表表示的二叉樹,其根指針為root,試寫出求二叉樹結(jié)點(diǎn)數(shù)目的算法。答案一:int Size(BiTree T) if(T=NULL) return 0; else return(1+Size(T->lchild)+Size(T->rchild);答案二:i=0;int in_order (BiTree p)if ( p !=NULL) in_order(p->lchild) ; printf ( p->data); i+; in_order(p->rchild) ; return i;答案三:void printtree (BiTree BT) BiTnode *p; i=0;InitStack (s ); /構(gòu)造棧sp=(1) BT ; s.top=0;while (p | s.top!=0) while (p!=NULL ) s.elems.top+=p; p=p->lchild ; if (s.top>0)(4)p=s.elem-top ; printf (“%d”, p->data); i+;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論