數(shù)據(jù)結(jié)構(gòu)樹和二叉樹ppt_第1頁
已閱讀1頁,還剩54頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、樹的概念樹的遍歷及存儲(chǔ)二叉樹 二叉樹的遍歷 線索二叉樹 哈夫曼樹及其應(yīng)用,第七章 樹和二叉樹,樹的遞歸定義 樹是由 n (n ? 0) 個(gè)結(jié)點(diǎn)組成的有限集合。如果 n = 0,稱為空樹;如果 n > 0,則 ? 有一個(gè)特定的稱之為根(root)的結(jié)點(diǎn),它只有直接后繼,但沒有直接前驅(qū); ? 除根以外的其它結(jié)點(diǎn)劃分為 m (m ? 0) 個(gè) 互不相交的有限集合T0, T1, …, Tm-1

2、,每個(gè)集合又是一棵樹,并且稱之為根的子樹。,樹的概念,樹的邏輯結(jié)構(gòu)?除了根結(jié)點(diǎn)外,每個(gè)結(jié)點(diǎn)有且僅有一個(gè)直接前驅(qū)。?所有結(jié)點(diǎn)可以有多個(gè)直接后繼。 1--多,樹的表示,(1) 樹形表示法。這是樹的最基本的表示,使用一棵倒置的樹表示樹結(jié)構(gòu),非常直觀和形象。下圖就是采用這種表示法。,(2) 文氏圖表示法。使用集合以及集合的包含關(guān)系描述樹結(jié)構(gòu)。下圖就是樹的文氏圖表示法。,,(3) 凹入表示法。使用線段的伸縮描述樹

3、結(jié)構(gòu)。下圖是樹的凹入表示法。,,(4) 括號(hào)表示法。將樹的根結(jié)點(diǎn)寫在括號(hào)的左邊,除根結(jié)點(diǎn)之外的其余結(jié)點(diǎn)寫在括號(hào)中并用逗號(hào)間隔來描述樹結(jié)構(gòu)。下圖是樹的括號(hào)表示法。,,ADT Tree{ 數(shù)據(jù)對(duì)象: D={ai|1?i ? n, n ? 0, ai屬Elemtype類型 數(shù)據(jù)關(guān)系: R1={| ai ,aj ?D, 1?i ? n, 1?j ? n, 每個(gè)元素只有一

4、個(gè)前驅(qū)可以有多個(gè)后繼} 基本運(yùn)算: InitTree(t); ClearTree(t); Parent(t,e); Sons(t,e); Traver(t);},抽象數(shù)據(jù)類型數(shù)的定義,樹的基本常用術(shù)語,層次 根為第1層 最大層數(shù)為樹的深度(高度),雙親 (直接前驅(qū)) 孩子(直接后繼) 兄弟 堂兄弟 子孫 祖先,森林----m(m

5、>=0)棵互不相交的樹的集合。,d=3,d=0,度 一個(gè)結(jié)點(diǎn)的子樹的個(gè)數(shù)稱為該結(jié)點(diǎn)的度。,度為零的結(jié)點(diǎn)稱為葉子結(jié)點(diǎn)。,度不為零的結(jié)點(diǎn)稱為分支結(jié)點(diǎn)。,樹中所有結(jié)點(diǎn)的度的最大值為樹的度。dmax=3,d=2,樹和森林的遍歷,深度優(yōu)先遍歷 先根次序遍歷 后根次序遍歷廣度優(yōu)先遍歷 按層次序遍歷,先根次序遍歷當(dāng)樹非空*訪問根結(jié)點(diǎn)*依次先根遍歷根的各子樹 D T1 T2 T3

6、 A,BEF,CG,DH IJ,先根次序遍歷森林依次先根遍歷各子樹 T1 T2 T3,ABCDE,FG,HIKJ,樹和森林的遍歷,后根次序遍歷當(dāng)樹非空*依次后根遍歷根的各子樹*訪問根結(jié)點(diǎn) T1 T2 T3 D A,EFB,GC,H IJD,后根次序遍歷森林

7、依次后根遍歷各子樹 T1 T2 T3,BCEDA,GF,KIJH,樹和森林的遍歷,按層次序遍歷當(dāng)樹非空*自上向下依次遍歷每一層*每層從左向右訪問結(jié)點(diǎn) 層次: 1 2 3,A,BCD,EFGH IJ,按層次序遍歷森林依次遍歷森林中各層結(jié)點(diǎn)層次: 1 2 3,AFH,BCDGIJ,EK,? 雙親表示,樹的存儲(chǔ)結(jié)構(gòu),A B

8、 C D E F G,-1 0 0 0 1 1 3,指向其雙親的位置,特點(diǎn):很快確定雙親結(jié)點(diǎn),? 孩子表示法,每個(gè)結(jié)點(diǎn)擁有孩子的個(gè)數(shù)不同,所以采用單鏈表鏈接孩子結(jié)點(diǎn)。,孩子結(jié)點(diǎn)的序號(hào),指向下一個(gè)孩子結(jié)點(diǎn),指向第一個(gè)孩子結(jié)點(diǎn),ABCDEFG,?,?,?,?,1,2,3,4,5,6,typedef struct cnode{ int child; struct c

9、node *next;}link;,typedef struct{ datatype data; link *headptr;}ctree;ctree T[maxnode];,特點(diǎn):很快確定孩子結(jié)點(diǎn) 但確定雙親效率低,,data parent headprt,-1000113,孩子雙親表示法,,?,?,?,?,?,?,?,?,? 孩子兄弟表示,指向第一個(gè)孩子結(jié)點(diǎn),指向右兄弟結(jié)點(diǎn)

10、,,,,,,定義: 一棵二叉樹是結(jié)點(diǎn)的一個(gè)有限集合,該集合或者為空,或者是由一個(gè)根結(jié)點(diǎn)加上兩棵分別稱為左子樹和右子樹的、互不相交的二叉樹組成。,二叉樹 (Binary Tree),二叉樹的五種不同形態(tài),,度?2 有序樹,?二叉樹與度為2的樹的區(qū)別,度 ?2 =2 序 有序 無序,分別有0個(gè) 1個(gè) 2個(gè) 3個(gè)4個(gè)結(jié)點(diǎn)的不同二叉樹如下,,n0 =1,n1 =1,n

11、2 =2,n3 =5,n4 =14,0個(gè),1個(gè),2個(gè),3個(gè),4個(gè),性質(zhì)2 深度為 k 的二叉樹至多有 2k-1個(gè)結(jié)點(diǎn)。(k ? 1),二叉樹的性質(zhì),性質(zhì)1 在二叉樹的第 i 層最多有 2i-1 個(gè)結(jié)點(diǎn)。(i ? 1),[證] (數(shù)學(xué)歸納法) i=1 , 2i-1 =20=1 。設(shè)i=j成立,即第j層至多2j-1個(gè)結(jié)點(diǎn)。 則j+1層,最多有2*2j-1= 2(j+1)-1

12、(由于每個(gè)最多有兩個(gè)后繼),[證] 20 + 21 + … + 2k-1 = 2k-1,性質(zhì)3 對(duì)任何一棵二叉樹, 若其葉結(jié)點(diǎn)個(gè)數(shù)為 n0, 度為2的結(jié)點(diǎn)個(gè)數(shù)為 n2, 則有 n0=n2+1。,完全二叉樹 (Complete Binary Tree),滿二叉樹 (Full Binary Tree),滿二叉樹和完全二叉樹,深度為k且有2k-1個(gè)結(jié)點(diǎn),所有分支結(jié)點(diǎn)的度為 2,

13、 n1=0 葉子結(jié)點(diǎn)都在最下一層。,葉子結(jié)點(diǎn)都在最下兩層,且最下一層集中在最左邊。,12 34 5 6 78 9 10 11 12 13 14 15,12 34 5 6 78 9 10,若按層次編號(hào),則各結(jié)點(diǎn)的編號(hào)與其位置1-1對(duì)應(yīng)。,性質(zhì)4 具

14、有 n (n ? 0) 個(gè)結(jié)點(diǎn)的完全二叉樹的深度為 ?log2(n+1)? -1,[證]設(shè)完全二叉樹的高度為 k,則有: 2k-1 - 1 < n ? 2k - 1變形 2k-1 ? < n< 2k 取對(duì)數(shù) k-1 ? log2(n) < k 因此有 h = ?log2(n) ? +1,性質(zhì)5 一棵有n個(gè)結(jié)點(diǎn)的

15、完全二叉樹,若按層次結(jié)點(diǎn)編號(hào),對(duì)于任一編號(hào)為i結(jié)點(diǎn),則有: 若i = 1, 則結(jié)點(diǎn) i 無雙親 若i > 1, 則結(jié)點(diǎn)i 的雙親編號(hào)為?i /2? 若2*i<= n, 則結(jié)點(diǎn) i 的左孩子編號(hào)為 2*i 若2*i<= n, 則結(jié)點(diǎn) i 的右孩子編號(hào)為2*i +1,12 34 5 6 78 9 10,例:結(jié)點(diǎn)4的雙親

16、編號(hào)為2結(jié)點(diǎn)4的左孩子編號(hào)為8結(jié)點(diǎn)4的右孩子編號(hào)為9,由于(性質(zhì)5)完全二叉樹按層次編號(hào)后,可確定各結(jié)點(diǎn)與其雙親及孩子的關(guān)系,則完全二叉樹按編號(hào)次序進(jìn)行順序表示。,順序表示,二叉樹的存儲(chǔ)結(jié)構(gòu),1 2 3 4 5 6 7 8 9 10,將一般二叉樹轉(zhuǎn)換為完全二叉樹(添加虛結(jié)點(diǎn)),然后按層次編號(hào)次序進(jìn)行順序表示。,A B C D E F G H I J,結(jié)點(diǎn)5: 雙親是結(jié)點(diǎn) 2 左孩子是結(jié)點(diǎn)

17、 10 沒有右孩子,結(jié)點(diǎn)E(6): 雙親是結(jié)點(diǎn)C(3) 左孩子是結(jié)點(diǎn) I(12) 沒有右孩子(13為空),完全二叉樹,一般二叉樹,指向左孩子結(jié)點(diǎn),指向右孩子結(jié)點(diǎn),二叉鏈表表示,,?,,,?,?,,,?,?,?,?,三叉鏈表表示,指向雙親結(jié)點(diǎn),typedef struct node { //二叉樹結(jié)點(diǎn)定義

18、 ElemType data; //結(jié)點(diǎn)數(shù)據(jù)域 struct node * lchild, * rchild; //左右孩子指針域} BTNode;BTNode *root; //根指針唯一確定二叉鏈表,二叉鏈表結(jié)點(diǎn)結(jié)構(gòu),數(shù)據(jù)類型,二叉樹的遍歷,樹的遍歷就是按某種次序訪問樹中的所有結(jié)點(diǎn), 要求每個(gè)結(jié)點(diǎn)訪問一次且僅訪問一次。

19、遍歷二叉樹三方面工作:訪問根結(jié)點(diǎn)記作 D 遍歷根的左子樹記作 L 遍歷根的右子樹記作 R則可能的遍歷次序有: 前序 DLR 鏡像 DRL 中序 LDR 鏡像 RDL

20、 后序 LRD 鏡像 RLD,前序 DLR中序 LDR后序 LRD,前序遍歷二叉樹:若二叉樹非空,則訪問根結(jié)點(diǎn) (D)前序遍歷左子樹 (L)前序遍歷右子樹 (R),void preorder ( BTNode *t ) { if ( t != NULL ) { visite (t->data); preorder ( t->

21、;lchild ); preorder ( t->rchild ); }},前序遍歷序列: D L R a,b d e,c f g,中序遍歷二叉樹:若二叉樹非空,則中序遍歷左子樹 (L)訪問根結(jié)點(diǎn) (D)中序遍歷右子樹 (R),void inorder ( BTNode *t ) { if ( t != NULL ) { inorder

22、( t->lchild ); visite (t->data); inorder ( t->rchild ); }},中序遍歷序列: L D R a,d b e,c g f,后序遍歷二叉樹:若二叉樹非空,則后序遍歷左子樹 (L)后序遍歷右子樹 (R)訪問根結(jié)點(diǎn) (D),后序遍歷序列: L R

23、D a,d e b,g f c,void postorder ( BTNode *t ) { if ( t != NULL ) { postorder ( t->lchild ); postorder ( t->rchild ); visite (t->data); }},應(yīng)用二叉樹遍歷的事例,表達(dá)式:a +

24、b * ( c - d ) - e / f,后綴表達(dá)式:,a b c d -* + e f / -,二叉樹表示表達(dá)式構(gòu)造原則:*兩個(gè)操作數(shù)分別作為左右子樹*運(yùn)算符作為根結(jié)點(diǎn),前序遍歷序列:- + a * b - c d / e f 中序遍歷序列:a + b * c - d - e / f 后序遍歷序列:a b c d - * + e f / -,在二叉樹中查找指定結(jié)點(diǎn),判斷根是否?根是成功,若不是,查找左子樹,若左無,查找右子

25、樹,?,,,? find(BTNode *b, elemtype x){ if(b==NULL) return(NULL); /*空樹*/ if ( b->data==x ) return(b); /*查找成功*/ p=find( b->lchild ,x); /*查找左子樹*/ if( p==NULL)

26、 p=find( b->rchild ,x); /*查找右子樹*/ return( p );},int leaf ( BTNode *b ) { if ( b == NULL ) return 0; if (?) return 1; nl=leaf( b->lchild ); nr=leaf( b->rchild );

27、 return nl+nr;},統(tǒng)計(jì)二叉樹葉子結(jié)點(diǎn)的個(gè)數(shù),空樹:n=0,根是葉子:n=1,根是分支:n=nl+nr,?統(tǒng)計(jì)二叉樹結(jié)點(diǎn)的個(gè)數(shù)?統(tǒng)計(jì)二叉樹分支結(jié)點(diǎn)的個(gè)數(shù)?統(tǒng)計(jì)二叉樹度為2的個(gè)數(shù)?統(tǒng)計(jì)二叉樹度為1的個(gè)數(shù),0,0,0,0,0,0,1,1,1,1,1,0,0,2,3,構(gòu)造二叉樹 由二叉樹的前序序列和中序序列可唯一地確定一棵二叉樹。,利用pre[ ]存儲(chǔ)二叉樹的前序序列

28、 in[ ]存儲(chǔ)二叉樹的中序序列,構(gòu)造二叉樹立的基本思想:建立根結(jié)點(diǎn),分別構(gòu)造左、右子樹。,前序序列 ABHFDECKG中序序列 HBDFAEKCG,ABHFDECKGHBDFAEKCG,右前序 ECKG 中序 EKCG,右前序 ECKG 中序 EKCG,無左,左前序 BHFD 中序 HBDF,左前序 BHFD 中序 HBDF,,左,,,左,,右,前序確定根中序分左右,建立子樹pre

29、[l1..h1]和in[l2..h2]:(1)建立根結(jié)點(diǎn)pre[l1](2)在in[l2..h2]中確定根in[k]=pre[l1](3)分別建立左右子樹, 并將左右孩子的指針填入根結(jié)點(diǎn),利用遞歸方法建立二叉樹,參數(shù)?出口?,中序遍歷二叉樹的非遞歸算法,,,,,,,,,中序遍歷LDR基本思想:保存根結(jié)點(diǎn) 遍歷左子樹 取出根結(jié)點(diǎn)

30、 訪問根結(jié)點(diǎn) 遍歷右子樹,注:利用棧保存根結(jié)點(diǎn),,,,,,,,,,左空,右空,左空,右空,,f,b,d,a,中序遍歷序列: f b d a e c,d,a,e,c,b,f,設(shè)活動(dòng)指針p掃描每個(gè)結(jié)點(diǎn)當(dāng)p!= ? p入棧 p指向其左孩子當(dāng)p== ? 出棧p 訪問p

31、 p指向其右孩子,設(shè)活動(dòng)指針p掃描每個(gè)結(jié)點(diǎn)當(dāng)p!= ? p入棧 p指向其左孩子當(dāng)p== ? 出棧p 訪問p p指向其右孩子,inorder(BTNode *b){ BTNode *p; init(S); /*棧初始化*/ p=b; for( p!=NULL )

32、 { while(p!=NULL) {push(S,p);/*p入棧*/ p=p->lchild; /*進(jìn)入左子樹*/ } if(empty(S)) return; p=pop(S); /*出棧*/ visite(p); /*訪問*/ p

33、=p->rchild; /*進(jìn)入右子樹*/ }},中序遍歷二叉樹的非遞歸算法,按層次遍歷二叉樹,注:利用隊(duì)列保存結(jié)點(diǎn),,,,遍歷序列:a b c d e f g,a,a,a,b,b,b,c,c,c,d,d,d,e,e,e,f,f,f,g,g,g,按層次遍歷過程,隊(duì)列,隊(duì)頭:當(dāng)前訪問的結(jié)點(diǎn)隊(duì)尾:保存當(dāng)前訪問 的孩子結(jié)點(diǎn)操作過程: 取出隊(duì)頭作為當(dāng)前結(jié)點(diǎn) 訪

34、問當(dāng)前結(jié)點(diǎn) 若有左孩子,則入隊(duì)列 若有右孩子,則入隊(duì)列,void layer(BTNode *b){ BTNode *p; init(Q); /*隊(duì)列初始化*/ enqueue(Q,b); while(!empty(Q)) { p=dequeue(Q); /*取對(duì)頭*/ visite(p); /*訪問當(dāng)前結(jié)點(diǎn)*/

35、 if (p->lchild!=NULL) enqueue(Q,p->lchild); if (p->rchild!=NULL) enqueue(Q,p-rchild); }},§6.4 線索二叉樹,問題:n個(gè)結(jié)點(diǎn)的二叉鏈表中, 每個(gè)結(jié)點(diǎn)有兩個(gè)指針域 , 共2n個(gè)指針域,空指

36、針域?,n=8 共16個(gè)指針域空指針域:9,n+1,[證] 設(shè)二叉樹中度分別為0、1和 2 的結(jié)點(diǎn)個(gè)數(shù)為n0、n1和n2。 空指針域?yàn)?n1+2n0 由于:n0=n2+1 n= n0+n1+n2 則:n1+2n0= n1+ n0 + n0 = n1+

37、n0 + n2 + 1 = n + 1,為了充分利用存儲(chǔ)空間,在空指針域填上線索,即:*若無左孩子,則lchild指向某種遍歷的前驅(qū);*若無右孩子,則rchild指向某種遍歷的后繼;,中序遍歷序列:EBIFJACG,,,,,,,,?,?,中序線索二叉樹,dbeacgf,前序線索二叉樹,abdecfg,后序線索二叉樹,debgfca,,,,,,,二叉樹線索化,線索二叉樹

38、的結(jié)點(diǎn)結(jié)構(gòu),typedef struct node{ ElemType data; int ltag,rtag; struct node *lchild,*rchild;}TBTNode;,前序線索樹,前序遍歷序列:abdgcef,中序線索樹,中序遍歷序列:dgbaecf,后序線索樹,后序遍歷序列:gdbaefc,線索二叉樹的遍歷,求指定結(jié)點(diǎn)p的后繼qp->rtag=1:,q=p->

39、rchild,p->rtag=0:,中序遍歷序列: dgbaecf,q=p->rchild;while(q->ltag==0) q=q->lchild;,右子樹左下角的結(jié)點(diǎn),建立線索二叉樹,主要操作過程:*建立一般的二叉鏈表*通過遍歷進(jìn)行線索化 設(shè)p為當(dāng)前處理結(jié)點(diǎn) pre為p的前驅(qū)填標(biāo)志:若p無左:p->ltag=1若p無右:p->rtag=1填線索:

40、若p->ltag==1: p->lchild=pre;若pre->rtag==1: pre->rchild=p;,bithptr *pre=NULL;inthread(TBTNode *p){ if(p!=NULL) { inthread(p->lchild); if(p->lchild==NULL)

41、 {p->ltag=1; p->lchild=pre;} if(p->rchild==NULL) p->rtag=1; if(pre!=NULL &&pre->rtag==1) pre->rchild=p;

42、 pre=p; inthread(p->rchild); }},,,,,樹和森林與二叉樹的相互轉(zhuǎn)換,樹轉(zhuǎn)換成二叉樹,*第一個(gè)孩子作為左孩子*右兄弟作為右孩子,,,,,,,,森林轉(zhuǎn)換成二叉樹,樹和森林與二叉樹的相互轉(zhuǎn)換,*依次將每棵樹 轉(zhuǎn)換成二叉樹,*第一棵樹的根 作為二叉樹的根*從第二棵樹到 最后一棵樹的根, 依次作為前一棵 樹根的右孩子,,,二叉樹

43、轉(zhuǎn)換為樹或森林,樹和森林與二叉樹的相互轉(zhuǎn)換,*左孩子作為第一個(gè)孩子*左孩子的右孩子作為第二個(gè)孩子*左孩子的右孩子的右孩子作為第三個(gè)孩子………………..,,,,,,*根作為第一棵樹的根*根的右孩子作為第二棵樹的根*根的右孩子的右孩子作為第三棵樹的根………………..,遍歷二叉樹前序遍歷序列:中序遍歷序列:后序遍歷序列:,遍歷森林先根遍歷序列:后根遍歷序列:,,樹和森林與二叉樹的相互轉(zhuǎn)換,abdgiecfh,dgibea

44、fhc,igdebhfca,abdgiecfh,dgibeafhc,二叉樹,樹或森林,前序==先根,中序==后根,哈夫曼樹 (Huffman Tree),樹的應(yīng)用舉例,帶權(quán)路徑長(zhǎng)度 (Weighted Path Length, WPL) 擴(kuò)充二叉樹的帶權(quán) (外部) 路徑長(zhǎng)度是樹的各葉結(jié)點(diǎn)所帶的權(quán)值 wi 與該結(jié)點(diǎn)到根的路徑長(zhǎng)度 li 的乘積的和,即:,WPL=2*1+4*2+6*3+7*3+8*4

45、=81,具有相同的帶權(quán)葉子有多種不同的二叉樹,WPL = 2*2+4*2 +5*2+7*2 = 36,WPL = 2*1+4*2 +5*3+7*3 = 46,WPL = 7*1+5*2 +2*3+4*3 = 35,帶權(quán)(外部)路徑長(zhǎng)度達(dá)到最小,,哈夫曼樹 (Huffman Tree),哈夫曼樹帶權(quán)路徑

46、長(zhǎng)度達(dá)到最小的擴(kuò)充二叉樹。哈夫曼樹的特點(diǎn):權(quán)值大的結(jié)點(diǎn)離根最近。,,,,,(1) 初始狀態(tài):構(gòu)造具有 n 棵二叉樹的森林 F = { T1, …, Tn},其中每棵二叉樹 Ti 只有一 個(gè)帶權(quán)值 wi 的根結(jié)點(diǎn)。,哈夫曼樹 (Huffman Tree),霍夫曼樹的構(gòu)造過程,F : {7,5,2,4},(2) 重復(fù)合并:直到 剩一棵樹① 在 F 中選取兩棵根的權(quán)值最小的二叉樹, 做為左、右子樹合并成一棵新二叉樹。置新的二叉樹的根

47、結(jié)點(diǎn)的權(quán)值為其左、右子樹上根結(jié)點(diǎn)的權(quán)值之和。② 在 F 中刪去這兩棵二叉樹。③ 把新的二叉樹加入 F。,7 0 0 05 0 0 02 0 0 04 0 0 0 0

48、 0 0 0 0 0 0 0 0,哈夫曼樹 (Huffman Tree),注:m個(gè)葉子,經(jīng)m-1次合并,產(chǎn)生m-1分支結(jié)點(diǎn),則哈夫曼共有2m-1個(gè)結(jié)點(diǎn)。,*,*,5,5,6,3,4,*,6,*,11,6,6,2,5,*,*,18,7,7,1,head編碼:,哈夫曼編碼,{ 5, 29, 7

49、, 8, 14, 23, 3, 11 },*不能出現(xiàn)重碼*不能出現(xiàn)一個(gè)編碼是另一個(gè)編碼的前綴。,a b c d e f g h,a,b,c,d,e,f,g,h,a :0001b :10c :1110d :1111,e :110 f :01 g :0000h :001,001,110,0001,1111,0100011110110譯碼:,01,0001,1110,110,f,a,c,e,設(shè)左分支

50、為0,右分支為1。,權(quán)值為各字母出現(xiàn)的頻率,電報(bào)碼要求:,判定樹,WPL=0.10*1+0.15*2+0.25*3+0.35*4+0.15*4 = 3.15,最佳判定樹,考試成績(jī)分布表,最佳判定樹,WPL = 0.10*3+0.15*3+0.25*2+0.35*2+0.15*2 = 0.3+0.45+0.5+0.7+0.3 = 2.25,考試成績(jī)分布表,小 結(jié),一、樹的定義(遞歸)、樹的邏輯結(jié)構(gòu)(1-多)。二、樹

51、的常用術(shù)語:結(jié)點(diǎn)的度、樹的度。 樹的層次、樹的高度。 雙親結(jié)點(diǎn)、孩子結(jié)點(diǎn)、子孫、祖先。 森林。三、樹的存儲(chǔ)方式:雙親表示法、孩子表示法及孩子兄弟表示法。四、樹的遍歷:先根遍歷、后根遍歷及按層次遍歷。五、二叉樹的定義及二叉樹的基本形式。六、二叉樹的五個(gè)基本性質(zhì)。七、二叉樹的存儲(chǔ)方式:順序方式、二叉鏈表及三叉鏈表。八、二叉

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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)論