數(shù)據(jù)結(jié)構(gòu)-嚴(yán)蔚敏-期末復(fù)習(xí)題_第1頁
數(shù)據(jù)結(jié)構(gòu)-嚴(yán)蔚敏-期末復(fù)習(xí)題_第2頁
數(shù)據(jù)結(jié)構(gòu)-嚴(yán)蔚敏-期末復(fù)習(xí)題_第3頁
數(shù)據(jù)結(jié)構(gòu)-嚴(yán)蔚敏-期末復(fù)習(xí)題_第4頁
數(shù)據(jù)結(jié)構(gòu)-嚴(yán)蔚敏-期末復(fù)習(xí)題_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

一.是非題〔共分,每題分〕1.數(shù)據(jù)結(jié)構(gòu)可用三元式表示〔D,S,P〕。其中:D是數(shù)據(jù)對象,S是D上的關(guān)系,P是對D的根本操作集。(f)2簡單地說,數(shù)據(jù)結(jié)構(gòu)是帶有結(jié)構(gòu)的數(shù)據(jù)元素的集合。(t)3判斷帶頭結(jié)點(diǎn)的非空循環(huán)單鏈表〔頭指針為L〕中指針p所指結(jié)點(diǎn)是最后一個(gè)元素結(jié)點(diǎn)的條件是:p->next==L。(t)線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)具有可直接存取表中任一元素的優(yōu)點(diǎn)。(f)5線性表的順序存儲(chǔ)結(jié)構(gòu)優(yōu)于鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。(f)6.在單鏈表P指針?biāo)附Y(jié)點(diǎn)之后插入S結(jié)點(diǎn)的操作是:P->next=S;S->next=P->next;。(f)7對于插入、刪除而言,線性表的鏈?zhǔn)酱鎯?chǔ)優(yōu)于順序存儲(chǔ)。(t)8.順序存儲(chǔ)方式的優(yōu)點(diǎn)是存儲(chǔ)密度大,且插入、刪除運(yùn)算效率高。(f)9.棧和隊(duì)列是操作上受限制的線性表。(t)10.棧和隊(duì)列是與線性表完全不同的一種數(shù)據(jù)結(jié)構(gòu)。(f)11.隊(duì)列是一種操作受限的線性表,凡對數(shù)據(jù)元素的操作僅限一端進(jìn)行。(f)12.棧和隊(duì)列也是線性表。如果需要,可對它們中的任一元素進(jìn)行操作。(f)13.棧是限定僅在表頭進(jìn)行插入和表尾進(jìn)行刪除運(yùn)算的線性表。(f)14.二叉樹中每個(gè)結(jié)點(diǎn)有兩個(gè)子結(jié)點(diǎn),而對一般的樹,那么無此限制,所以,二叉樹是樹的特殊情形。(f)15二叉樹是一棵結(jié)點(diǎn)的度最大為二的樹。(f)16赫夫曼樹中結(jié)點(diǎn)個(gè)數(shù)一定是奇數(shù)。(t)17在二叉樹的中序遍歷序列中,任意一個(gè)結(jié)點(diǎn)均處在其左孩子結(jié)點(diǎn)的后面。(t)18假設(shè)B是一棵樹,B′是對應(yīng)的二叉樹。那么B的后根遍歷相當(dāng)于B′的后序遍歷。(f)19.通常,二叉樹的第i層上有2i-1個(gè)結(jié)點(diǎn)。(f)20.中序線索二叉樹的優(yōu)點(diǎn)是便于在中序下查找直接前驅(qū)結(jié)點(diǎn)和直接后繼結(jié)點(diǎn)。(t)21二叉樹的先序遍歷序列中,任意一個(gè)結(jié)點(diǎn)均處在其孩子結(jié)點(diǎn)的前面。(t)22由樹結(jié)點(diǎn)的先根序列和后根序列可以唯一地確定一棵樹。(t)23鄰接多重表可以用以表示無向圖,也可用以表示有向圖。(f)24可從任意有向圖中得到關(guān)于所有頂點(diǎn)的拓?fù)浯涡颉?f)25有向圖的十字鏈表是將鄰接表和逆鄰接表合二為一的鏈表表示形式。(t)26關(guān)鍵路徑是AOE網(wǎng)中源點(diǎn)到匯點(diǎn)的最短路徑。(f)27連通圖G的生成樹是一個(gè)包含G的所有n個(gè)頂點(diǎn)和n-1條邊的子圖。(f)28一個(gè)無向圖的連通分量是其極大的連通子圖。(t)29十字鏈表可以表示無向圖,也可用以表示有向圖。(f)30鄰接表可以表示有向圖,也可以表示無向圖。〔t〕31.二叉排序樹的平均查找長度為O(logn)。(t)32.二叉排序樹的最大查找長度與〔logn〕同階。(f)33選用好的hash函數(shù)可防止沖突。(f)34折半查找不適用于有序鏈表的查找。(t)35.對于目前所知的排序方法,快速排序具有最好的平均性能。(t)36對于任何待排序序列來說,快速排序均快于冒泡排序。(f)37在最壞情況下,堆排序的時(shí)間性能是O(nlogn),比快速排序好(t)38快速排序具有最好的平均時(shí)間性能,它在任何時(shí)候的時(shí)間復(fù)雜度都是O〔nlogn〕。(f)39.字符串是數(shù)據(jù)對象特定的線性表。(t)40.空串與空格串是相同的。(f)41.對于一棵m階的B-樹.樹中每個(gè)結(jié)點(diǎn)至多有m個(gè)關(guān)鍵字.除根之外的所有非終端結(jié)點(diǎn)至少有┌m/2┐個(gè)關(guān)鍵字。(f)42.當(dāng)二叉排序樹是一棵平衡二叉樹時(shí),其平均查找長度為O(log2n)。(t)43.廣義表的表頭和表尾都是廣義表。(f)44二維數(shù)組是其數(shù)據(jù)元素為線性表的線性表。(t)45.弗洛伊德算法的根本思想是依最短路徑長度遞增的次序求得各條路徑。〔f〕選擇題。1.從邏輯上可以把數(shù)據(jù)結(jié)構(gòu)分成(c)。A.動(dòng)態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu)B.順序組織和鏈接組織C.線性結(jié)構(gòu)和非線性結(jié)構(gòu)D.根本類型和組合類型2.線性表L在(b)情況下適于使用鏈表結(jié)構(gòu)實(shí)現(xiàn)。A.不需修改L的結(jié)構(gòu)B.需不斷對L進(jìn)行刪除、插入C.需經(jīng)常修改L中結(jié)點(diǎn)值D.L中含有大量結(jié)點(diǎn)3.帶頭結(jié)點(diǎn)的單鏈表L為空的判斷條件是b。帶頭結(jié)點(diǎn)的循環(huán)鏈表L為空的判斷條件是c。A.L==nullB.L->next==nullC.L->next==LD.L!=null4.假設(shè)順序表中各結(jié)點(diǎn)的查找概率不等,那么可用如下策略提高順序查找的效率:假設(shè)找到指定的結(jié)點(diǎn),將該結(jié)點(diǎn)與其后繼〔假設(shè)存在〕結(jié)點(diǎn)交換位置,使得經(jīng)常被查找的結(jié)點(diǎn)逐漸移至表尾。以下為據(jù)此策略編寫的算法,請選擇適當(dāng)?shù)膬?nèi)容,完成此功能。順序表的存儲(chǔ)結(jié)構(gòu)為:typedefstruct{ElemType*elem;//數(shù)據(jù)元素存儲(chǔ)空間,0號單元作監(jiān)視哨intlength;//表長度}SSTable;intsearch_seq(SSTableST,KeyTypekey){//在順序表ST中順序查找關(guān)鍵字等于key的數(shù)據(jù)元素。//假設(shè)找到,那么將該元素與其后繼交換位置,并返回其在表中的位置,否那么為0。ST.elem[0].key=key;i=ST.length;while(ST.elem[i].key!=key)f;if(g){ST.elem[i]←→ST.elem[i+1];e;}returni;}a.i>0b.i>=0c.i<ST.lengthd.i<=ST.lengthe.i++f.i--g.a和c同時(shí)滿足h.b和d同時(shí)滿足5.遞歸程序可借助于(c)轉(zhuǎn)化為非遞歸程序。a.線性表b.隊(duì)列c:棧d.數(shù)組6.在以下數(shù)據(jù)結(jié)構(gòu)中(c)具有先進(jìn)先出〔FIFO〕特性,(b)具有先進(jìn)后出(FILO〕特性。a.線性表b.棧c.隊(duì)列d.廣義表7.假設(shè)對編號為1,2,3的列車車廂依次通過扳道棧進(jìn)行調(diào)度,不能得到(e)的序列。a:1,2,3b:1,3,2c:2,1,3d:2,3,1e:3,1,2f:3,2,18.在計(jì)算遞歸函數(shù)時(shí),如不用遞歸過程,應(yīng)借助于(b)這種數(shù)據(jù)結(jié)構(gòu)。a.線性表b.棧c.隊(duì)列d.雙向隊(duì)列9.假設(shè)帶頭結(jié)點(diǎn)的鏈表只設(shè)尾結(jié)點(diǎn)指針。以下選擇中〔c〕最適用于隊(duì)列。a.單鏈表b.雙向鏈表c.循環(huán)單鏈表d.雙向循環(huán)鏈表10.棧和隊(duì)列的一個(gè)共同點(diǎn)是(c)。a.都是先進(jìn)先出b.都是先進(jìn)后出c.只允許在端點(diǎn)處插入和刪除元素d.沒有共同點(diǎn)11.循環(huán)隊(duì)列用數(shù)組A[0..m-1]存放其元素值,設(shè)頭尾指針分別為front和rear,那么當(dāng)前隊(duì)列中的元素個(gè)數(shù)是(c)。a.rear-front-1b.rear-front+1c.(rear-front+m)%md.rear-front12.如下關(guān)于串的陳述中,正確的選項(xiàng)是(a,c)。a.串是數(shù)據(jù)元素類型特殊的線性表b.串中的元素是字母c.串中假設(shè)干個(gè)元素構(gòu)成的子序列稱為子串d.空串即為空格串13.對字符串s=’data-structure’執(zhí)行操作replace(s,substring(s,6,8),’bas’)的結(jié)果是(b)。a:‘database’b:‘data-base’c:‘bas’d:‘data-basucture’14.對廣義表A=〔〔a,(b)〕,(c,()),d〕執(zhí)行操作gettail(gethead(gettail(A)))的結(jié)果是:〔b〕。a:〔〕b:〔〔〕〕c:dd:(d)15.假設(shè)用于通訊的電文僅由6個(gè)字符組成,字母在電文中出現(xiàn)的頻率分別為7,19,22,6,32,14。假設(shè)為這6個(gè)字母設(shè)計(jì)哈夫曼編碼〔設(shè)生成新的二叉樹的規(guī)那么是按給出的次序從左至右的結(jié)合,新生成的二叉樹總是插入在最右〕,那么頻率為7的字符編碼是〔g〕,頻率為32的字符編碼是〔c〕。a:00b:01c:10d:11e:011f:110g:1110h:111116.對二叉排序樹〔c〕可得到有序序列。a:按層遍歷b:前序遍歷c:中序遍歷d:后序遍歷17.設(shè)一棵二叉樹BT的存儲(chǔ)結(jié)構(gòu)如下:12345678lchild23006000dataABCDEFGHrchild05408700其中l(wèi)child,rchild分別為結(jié)點(diǎn)的左、右孩子指針域,data為結(jié)點(diǎn)的數(shù)據(jù)域。那么該二叉樹的高度為(d);第3層有(a)個(gè)結(jié)點(diǎn)〔根結(jié)點(diǎn)為第1層〕。a.2b.3c.4d.518.先序遍歷圖示二叉樹可得到〔a〕的序列。a) ABHDEFICGb) HBEDFIACGHEIFDBGCA(A)/\(B)(C)/\\(H)(D)(G)/\(E)(F)\(I)19.在有n個(gè)結(jié)點(diǎn)的二叉樹的二叉鏈表表示中,空指針數(shù)〔b〕。a.不定b.n+1c.nd.n-120.假設(shè)某二叉樹有20個(gè)葉子結(jié)點(diǎn),有20個(gè)結(jié)點(diǎn)僅有一個(gè)孩子,那么該二叉樹的總結(jié)點(diǎn)數(shù)是(c)。a.40b.55c.59d.6121.某二叉樹的先序遍歷次序?yàn)閍bcdefg中序遍歷次序?yàn)閎adcgfe,那么該二叉樹的后序遍歷次序?yàn)椤瞔〕。層次遍歷次序?yàn)椤瞐〕。a:abcdefgb:cdebgfac:bdgfecad:edcgfba.22.圖示的三棵二叉樹中(c)為最優(yōu)二叉樹。A)B)C)ca27abcddb752445abcd752423.某二叉樹的后序遍歷和中序遍歷次序分別為DBFGECA和BDACFEG。那么其先序遍歷次序?yàn)椤瞓〕,層次遍歷次序?yàn)椤瞐〕。a.abcdefgb.abdcefgc.abcdfegd.abcdegf24.某樹的先根遍歷次序?yàn)閍bcdefg后根遍歷次序?yàn)閏debgfa。假設(shè)將該樹轉(zhuǎn)換為二叉樹,其后序遍歷次序?yàn)椤瞕〕。a.abcdefgb.cdebgfac.cdegbfad.edcgfba25.設(shè)x和y是二叉樹中的任意兩個(gè)結(jié)點(diǎn),假設(shè)在先根序列中x在y之前,而在后根序列中x在y之后,那么x和y的關(guān)系是(c)。

a.x是y的左兄弟b.x是y的右兄弟

c.x是y的祖先d.x是y的子孫26.用三叉鏈表作二叉樹的存儲(chǔ)結(jié)構(gòu),當(dāng)二叉樹中有n個(gè)結(jié)點(diǎn)時(shí),有(d)個(gè)空指針。a.n-1b.nc.n+1d.n+227.對一棵完全二叉樹進(jìn)行層序編號。那么編號為n的結(jié)點(diǎn)假設(shè)存在右孩子,其位序是(d)。編號為n的結(jié)點(diǎn)假設(shè)存在雙親,其位置是(a)。a:n/2b:2nc:2n-1d:2n+1e:nf:2(n+1)28.設(shè)森林F中有三棵樹,第一、第二和第三棵樹的結(jié)點(diǎn)個(gè)數(shù)分別為m1、m2和m3,那么與森林F對應(yīng)的二叉樹根結(jié)點(diǎn)的右子樹上的結(jié)點(diǎn)個(gè)數(shù)是(d)。a.m1b.m1+m2c.m329.以下二叉樹中,(a)可用于實(shí)現(xiàn)符號不等長高效編碼。a:最優(yōu)二叉樹b:次優(yōu)查找樹c:二叉平衡樹d:二叉排序樹30.鄰接表存儲(chǔ)結(jié)構(gòu)以下圖的深度優(yōu)先遍歷算法類似于二叉樹的(a)遍歷。a.先根b中根c.后根d.層次31.設(shè)無向圖G=(V,E)和G’=(V’,E’),假設(shè)G’是G的生成樹,那么下面不正確的說法是(b)。a.G’是G的子圖

b.G’是G的連通分量c.G’是G的無環(huán)子圖

d.G’是G的極小連通子圖且V’=V32.任何一個(gè)連通圖的最小生成樹(b)。a.只有一棵b有一棵或多棵c.一定有多棵d.可能不存在33.某無向圖的鄰接表如下所示;(e)是其原圖。(c)是按該鄰接表遍歷所得深度優(yōu)先生成樹。(d)是按該鄰接表遍歷所得廣度優(yōu)先生成樹。0a3211b302c4303d52104e525f43a.abb.abc.abcdcdcdefefefd.abe.abf.abcdcdcdefefef34.深度優(yōu)先遍歷圖使用了數(shù)據(jù)結(jié)構(gòu)〔b〕,而廣度優(yōu)先遍歷圖使用了數(shù)據(jù)結(jié)構(gòu)〔c〕。a〕數(shù)組b〕棧c〕隊(duì)列d〕線性表35某有向圖的鄰接表存儲(chǔ)結(jié)構(gòu)如下圖。0E21∧1D034∧2C0E21∧1D034∧2C43B120∧4A2∧36.根據(jù)存儲(chǔ)結(jié)構(gòu)依教材中的算法其深度優(yōu)先遍歷次序?yàn)椤瞕〕。廣度優(yōu)先遍歷此序?yàn)椤瞔〕。各強(qiáng)連通分量的頂點(diǎn)集為〔h〕。a.abcde.B.edcba.C.ecdab.d.ecadb.e.abc及edf.bc及aedg.ab及cedh.ac及bed37.以下查找方法中〔a〕適用于查找單鏈表。a.順序查找B〕折半查找C〕分塊查找D〕hash查找38.以下算法中〔c〕適用于求圖的最小代價(jià)生成樹。〔b〕能對圖作廣度優(yōu)先遍歷。a.DFS算法b.BFS算法c.Prim算法d.Dijkstra算法39.關(guān)鍵路徑是指在只有一個(gè)源點(diǎn)和一個(gè)匯點(diǎn)的有向無環(huán)網(wǎng)中源點(diǎn)至匯點(diǎn)〔c〕的路徑。a.弧的數(shù)目最多b.弧的數(shù)目最少c.權(quán)值之和最大d.權(quán)值之和最小40.哈希表的查找效率取決于〔d〕。a.哈希函數(shù)b.處理沖突的方法。C.哈希表的裝填因子。D.以上都是41.在Hash函數(shù)H(k)=kMODm中,一般來說,m應(yīng)取(c)。a.奇數(shù)b.偶數(shù)c.素?cái)?shù)d.充分大的數(shù)42.在順序表查找中,為防止查找過程中每一步都檢測整個(gè)表是否查找完畢,可采用a方法。a.設(shè)置監(jiān)視哨b.鏈表存貯c.二分查找d.快速查找43.靜態(tài)查找表和動(dòng)態(tài)查找表的區(qū)別在于(b)。a.前者是順序存儲(chǔ),而后者是鏈?zhǔn)酱鎯?chǔ)b前者只能進(jìn)行查找操作,而后者可進(jìn)行查找、插入和刪除操作c.前者只能順序查找,而后者只能折半查找d.前者可被排序,而后者不能被排序44.在一個(gè)含有n個(gè)元素的有序表上進(jìn)行折半查找,找到一個(gè)元素最多要進(jìn)行(b)次元素比擬。a.log2(n)b.log2(n)+1c.log2(n+1)d.log2(n+1)+145.設(shè)輸入序列為20,45,30,89,70,38,62,19依次插入到一棵2-3樹中(初始狀態(tài)為空),該B-樹為〔b〕。再刪除38,該B-樹為〔f〕。〔3062〕〔45〕〔19,20〕〔3845〕〔70,89〕〔30〔70〕〔1920〕〔38〕〔62〕〔89〕a:b:〔4570〕〔45〕〔20〕〔62〕〔89〕〔20〕〔70〕〔19〕〔30〕〔19〕(30,38〕〔62〕〔89〕c:d:〔3070〕〔45〕〔19,20〕〔4562〕〔89〕〔20〕〔70〕〔19〕〔30〕〔62〕〔89〕e:f:46.根據(jù)插入次序〔80,90,100,110,85,70,75,60,72〕建立二叉排序樹。圖〔a〕是最終變化的結(jié)果。假設(shè)仍以該插入次序建立平衡二叉樹。圖〔c〕是最終變化的結(jié)果。8080709075906075851006070851007211072110a:b:9090751008010070801107570851106072856072c:d:47.假設(shè)有序表中關(guān)鍵字序列為:14,20,25,32,34,45,57,69,77,83,92。對其進(jìn)行折半查找,那么在等概率情況下,查找成功時(shí)的平均查找長度是(c)。查找32時(shí)需進(jìn)行(c)次比擬。a.1b.2c.3d.448.哈希表地址空間為A[9],哈希函數(shù)為H(k)=kmod7,采用線性探測再散列處理沖突。假設(shè)依次將數(shù)據(jù)序列:76,45,88,21,94,77,17存入該散列表中,那么元素17存儲(chǔ)的下標(biāo)為(h);在等概率情況下查找成功的平均查找長度為(c)。a.0b.1c.2d.e.4f.5g.6h.749.假設(shè)從二叉樹的根結(jié)點(diǎn)到其它任一結(jié)點(diǎn)的路徑上所經(jīng)過的結(jié)點(diǎn)序列按其關(guān)鍵字遞增有序,那么該二叉樹是(c)。a.二叉排序樹b.赫夫曼樹c.堆d.平衡二叉樹50.當(dāng)待排序序列的關(guān)鍵字次序?yàn)榈剐驎r(shí),假設(shè)需為之進(jìn)行正序排序,以下方案中(d)為佳。a.起泡排序b.快速排序c.直接插入排序d.簡單項(xiàng)選擇擇排序51.一組待排序的記錄關(guān)鍵字初始排列如下:56,26,86,35,75,19,77,58,48,42以下選擇中〔d〕是快速排序一趟排序的結(jié)果?!瞔〕是希爾排序〔初始步長為3〕一趟排序的結(jié)果?!瞐〕是初始堆〔大堆頂〕。a〕86,75,77,58,42,19,56,35,48,26.b〕26,56,35,75,19,77,58,48,42,86.c〕35,26,19,42,58,48,56,75,86,77.d〕42,26,48,35,19,56,77,58,75,86.52.以下排序算法中,(d)算法可能會(huì)出現(xiàn):初始數(shù)據(jù)有序時(shí),花費(fèi)的時(shí)間反而最多。a.堆排序b.起泡排序c.歸并排序d.快速排序53.在以下排序方法中,〔c〕方法平均時(shí)間復(fù)雜度為0(nlogn),最壞情況下時(shí)間復(fù)雜度為0(n2);〔d〕方法所有情況下時(shí)間復(fù)雜度均為0(nlogn)。a.插入排序b.希爾排序c.快速排序d.堆排序三.填空題1.數(shù)據(jù)結(jié)構(gòu)通常有以下4類根本結(jié)構(gòu):集合、、樹型結(jié)構(gòu)、圖型結(jié)構(gòu)。設(shè)單鏈表中結(jié)點(diǎn)形式為datanext,假設(shè)單鏈表長度大于等于2,指針p指向表中某個(gè)結(jié)點(diǎn)且p->next非空,此時(shí)假設(shè)要?jiǎng)h除指針p所指的結(jié)點(diǎn),可以通過如下方法進(jìn)行:將p所指結(jié)點(diǎn)的后繼的元素值復(fù)制到該結(jié)點(diǎn),然后刪除其后繼結(jié)點(diǎn)。相應(yīng)的語句序列為:;;;;2.線性表的順序存儲(chǔ)結(jié)構(gòu)是以來表示數(shù)據(jù)元素之間的邏輯關(guān)系的。3.P是單鏈表中某一結(jié)點(diǎn)的指針,P既不是首元結(jié)點(diǎn)也不是尾元結(jié)點(diǎn),Q是P的前驅(qū)結(jié)點(diǎn)指針。當(dāng)刪除P結(jié)點(diǎn)時(shí),鏈表的鏈接可用語句〔〕實(shí)現(xiàn)。算法填空StatusPreordertraverse(BitreeT,Status(*Visit)(Telemtypee)){//先序非遞歸遍歷二叉樹。Initstack(S);Push(S,T);While(!stackempty(S)){While(gettop(S,p)&&_________________){if(!Visit(p->data))returnERROR;_____________________;}Pop(S,p);if(_______________){_______________;push(S,p->rchild);}}returnok;}4.某樹的先根遍歷次序?yàn)閍bcdefg后根遍歷次序?yàn)閏debgfa。假設(shè)將該樹轉(zhuǎn)換為二叉樹,其后序遍歷次序?yàn)椤病?。層次遍歷次序?yàn)椤病场?.某二叉樹的先序遍歷次序?yàn)閍fbcdeg后序遍歷次序?yàn)閏edbgfa。其后序遍歷次序?yàn)椤病?。層次遍歷次序?yàn)椤病场?.在二叉樹的第i層上至少有_________個(gè)結(jié)點(diǎn),至多有_________個(gè)結(jié)點(diǎn),深度為k的二叉樹至多有_____________個(gè)結(jié)點(diǎn).7.對樹的遍歷有先序遍歷樹和后序遍歷樹。假設(shè)以二叉鏈表作樹的存儲(chǔ)結(jié)構(gòu),那么樹的先序遍歷可借用二叉樹的遍歷算法來實(shí)現(xiàn),而樹的后序遍歷可借用二叉樹的遍歷算法來實(shí)現(xiàn)。8.設(shè)高度為h的二叉樹上只有度為0和度為2的結(jié)點(diǎn),那么此類二叉樹中所包含的結(jié)點(diǎn)數(shù)至少是,至多是。9.對任何一棵二叉樹T,假設(shè)其終端結(jié)點(diǎn)數(shù)為n0.度為2的結(jié)點(diǎn)為n2,那么n0與n2的關(guān)系為()。10.如果對完全二叉樹中結(jié)點(diǎn)從1開始按層進(jìn)行編號,設(shè)最大編號為n;那么,可以斷定編號為i(i>1)的結(jié)點(diǎn)的父結(jié)點(diǎn)編號為();所有編號〔〕的結(jié)點(diǎn)為葉子結(jié)點(diǎn)。n個(gè)頂點(diǎn)的連通圖至少有條邊,至多有條邊。11.對于圖的存儲(chǔ)結(jié)構(gòu)有〔〕、〔〕()()等方法。12.在一個(gè)無向圖的鄰接表中,假設(shè)表結(jié)點(diǎn)的個(gè)數(shù)是m,那么圖中邊的條數(shù)是____________條。13.假設(shè)有序表中關(guān)鍵字序列為:12,22,33,44,55,66,77,88,99對其進(jìn)行折半查找,那么在等概率情況下,查找成功時(shí)的平均查找長度是〔〕。查找99時(shí)需進(jìn)行〔〕次比擬。14.在哈希表中,處理沖突的方法有開放定址法,,等。15.在二叉樹的第i層上至少有_____個(gè)結(jié)點(diǎn),至多有_____個(gè)結(jié)點(diǎn),深度為k的二叉樹至多有個(gè)結(jié)點(diǎn).16.對于一棵高度為K的二叉排序樹,結(jié)點(diǎn)數(shù)最少可有個(gè),最多可有個(gè)。用遍歷對二叉排序樹進(jìn)行訪問可得到有序序列。17.Hash函數(shù)為H〔K〕=Kmod13,散列地址為0--14,用二次探測再散列處理沖突,關(guān)鍵字〔23,34,56,24,75,12,49,52,36,92〕的分布如圖,那么平均成功的查找長度為〔〕、平均失敗的查找長度為〔〕。18.一棵m階的B-樹,第一層至少有一個(gè)結(jié)點(diǎn);第二層至少有2個(gè)結(jié)點(diǎn),除根之外的所有非終端結(jié)點(diǎn)至少有〔〕棵子樹,樹中每個(gè)結(jié)點(diǎn)至多有〔〕棵子樹。012345678910111213145236925634232475124919.在哈希表中,處理沖突的方法有開放定址法,,,。20.哈希表的查找效率取決于〔〕()和〔〕。21.高度為4(包含不帶關(guān)鍵字的葉子結(jié)點(diǎn)層)的7階B樹最少有個(gè)關(guān)鍵字,最多有_________個(gè)關(guān)鍵字;如果其中的某結(jié)點(diǎn)正好有2個(gè)兒子,那么,該結(jié)點(diǎn)必定是結(jié)點(diǎn)。22.對于一棵二叉排序樹,通過按()次序遍歷,可以得到結(jié)點(diǎn)的有序序列。23.對n個(gè)元素的序列進(jìn)行內(nèi)部排序,假設(shè)用起泡排序法,最少的比擬次數(shù)是,最多的比擬次數(shù)是。24.以下算法試圖完成在數(shù)組A中搜索有無關(guān)鍵字key,假設(shè)有,返回?cái)?shù)組下標(biāo),假設(shè)無,返回-1。在“”處填上適宜的內(nèi)容,完成該算法。intBinarySearch(keytypeA[],intlow,inthigh,keytypekey){while() middle=(low+high)/2;if() returnmiddle; if(key<A[middle]) ; else;}return-1;}//endofBinarySearch25.以下函數(shù)為堆排序中的堆調(diào)整過程〔調(diào)整H.r[s]的關(guān)鍵字,使H.r[s..m]成為一小頂堆〕。請?jiān)凇啊碧幪钌线m宜的內(nèi)容,完成該算法。Voidheapadjust(heaptype@H,ints,intm){rc=H.r[s];for(j=2*s;j<=m;j*=2){if(j<m&&)++j;if()break;H.r[s]=H.r[j];s=j;};}//heapadjust圖示結(jié)構(gòu)題1.在電文中只出現(xiàn)頻率為(5,26,7,23,20,19)的6個(gè)字符,畫出你建的哈夫曼樹,并給出其哈夫曼編碼。2.某二叉樹的后序遍歷和中序遍歷次序分別為DBFGECA和BDACFEG請畫出該二叉樹,并為之建立先序線索。3.某二叉樹的先序遍歷次序?yàn)椋篴,b,c,d,e,f,g.中序遍歷次序?yàn)椋篵,a,d,f,e,g,c畫出該二叉樹,并在該二叉樹上建立中序線索。4.某二叉樹的中序遍歷次序?yàn)锽EGFDAC,先序遍歷次序?yàn)锳BDEFGC。試畫出該二叉樹,并為之建立中序線索〔圖示之〕。5.某二叉樹的后序遍歷和中序遍歷次序分別為FBEDGCA和FBADECG,請構(gòu)造并畫出該二叉樹。6.設(shè)某一電文只出現(xiàn)a,b,c,d,e,f,g7個(gè)字母;出現(xiàn)頻率分別為:30%,10%,05%,04%,13%,18%及20%,請給出各字母的哈夫曼編碼。7.將圖示森林轉(zhuǎn)換為二叉樹,并對該二叉樹先序全序線索化。hdahdajibfecjibfecmlkgmlkg8.將圖示森林轉(zhuǎn)換為二叉樹,并對該二叉樹中序全序線索化。5615619783297832449.某二叉樹的結(jié)點(diǎn)數(shù)據(jù)采用順序存儲(chǔ)表示如下:012345678910111213141516171819ABC

D

E

F

GH

I〔1〕試畫出此二叉樹的圖形表示。〔2〕將此二叉樹看作森林的二叉樹表示,試將它復(fù)原為森林。10.某有向圖如下圖:aa1〕給出其十字鏈表存儲(chǔ)結(jié)構(gòu)2〕給出其深度優(yōu)先遍歷次序。3〕給出其廣度優(yōu)先遍歷次序。cbcb4〕給出各強(qiáng)連通分量。eded11.設(shè)輸入序列為20,45,30,89,70,38,62,19,依次插入到一棵2-3樹中(初始狀態(tài)為空),請畫出該B-樹。12..右圖為一棵3階B-樹?!?0,25〕①畫出在該樹上插入元素15/│\后的B-樹。(10,14)〔21〕〔35〕②接著,再刪除元素35,畫出刪除后的B-樹。13.Hash函數(shù)為H〔K〕=Kmod13,散列地址為0--14,用線性探測再散列處理沖突,給出關(guān)鍵字〔56,34,68,23,16,70,48,35,83,12,14,57〕在散列地址的分布。并指出平均成功的查找長度是多少?0123456789101112131414.根據(jù)插入次序〔20,30,70,60,10,100,110,90,80?!辰⑵胶獾亩媾判驑洹?5.設(shè)哈希表長為16,哈希函數(shù)為H(key)=keymod13,用開放定址法的二次探測再散列處理沖突〔di=12,-12,22,-22,32,-32。。。。〕。依次存入12個(gè)元素:56,82,17,24,36,21,83,96,13,34,57,50。請畫出它們在表中的分布情形。16.待排序序列為:25,12,9,20,7,31,24,35,17,10,試寫出:(1).堆排序初始建堆(大頂堆)的結(jié)果;(2).以第一個(gè)元素為樞軸的快速排序一趟掃描的結(jié)果;(3).希爾排序第一趟(增量為5)的結(jié)果。算法設(shè)計(jì)題1.設(shè)有一個(gè)帶頭結(jié)點(diǎn)、元素按值遞增有序的單鏈表,結(jié)點(diǎn)的類型定義如下:typedefstructLNode{intdata;structLNode*next;}LNode,*LinkList;編寫算法,刪除其中所有值相同的多余元素結(jié)點(diǎn)2.設(shè)帶頭結(jié)點(diǎn)的單鏈表中的元素以值非遞減有序排列,試編寫算法,刪除表中所有值相同的多余元素。單鏈表結(jié)點(diǎn)的類型定義如下:typedefstructLNode{intdata;StructLNode*next;}LNode,*LinkList;3.某線性表中元素以降序排列,現(xiàn)要插入一個(gè)元素X,插入后該線性元素仍保持降序。線性表采用帶頭結(jié)點(diǎn)單鏈表方式存貯。請編寫該插入算法。4.編寫在一有序順序表中插入數(shù)據(jù)元素X的算法INSERT〔L,X〕。5.單鏈表結(jié)點(diǎn)的類型定義如下:typedefstructLNode{intdata;structLNode*next;}LNode,*Linklist;寫一算法,Delete(linklist&L,X),刪除表中所有值為X的結(jié)點(diǎn)。6.單鏈表結(jié)點(diǎn)的類型定義如下:typedefstructLNode{intdata;structLNode*next;}LNode,*Linklist;寫一算法,Contrary(linklist&L),對一帶頭結(jié)點(diǎn)且僅設(shè)尾指針L的循環(huán)單鏈表就地逆置?!布幢眍^變表尾,表尾變表頭?!?.線性表中的元素以值遞增有序排列,并以帶頭結(jié)點(diǎn)的單鏈表作存儲(chǔ)結(jié)構(gòu)。試寫一高效的算法,刪除表中所有值大于mink且小于maxk的元素〔假設(shè)表中存在這樣的元素〕同時(shí)釋放被刪結(jié)點(diǎn)空間,并分析你的算法的時(shí)間復(fù)雜度。8.線性表中的元素以值遞增有序排列,并以帶頭結(jié)點(diǎn)的單鏈表作存儲(chǔ)結(jié)構(gòu)。試寫一高效的算法,刪除表中所有值大于mink且小于maxk的元素〔假設(shè)表中存在這樣的元

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論