二叉樹(shù)的先中相關(guān)常用算法c語(yǔ)言版_第1頁(yè)
二叉樹(shù)的先中相關(guān)常用算法c語(yǔ)言版_第2頁(yè)
二叉樹(shù)的先中相關(guān)常用算法c語(yǔ)言版_第3頁(yè)
二叉樹(shù)的先中相關(guān)常用算法c語(yǔ)言版_第4頁(yè)
二叉樹(shù)的先中相關(guān)常用算法c語(yǔ)言版_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、#include #include typedef char T;typedef struct btnode結(jié)點(diǎn)定義T Element; struct btnode *LChild,*RChild;BTNode;typedef struct btree頭結(jié)點(diǎn)定義struct btnode *Root;BTree;BTNode* NewNode()創(chuàng)建空間BTNode *p=(BTNode*)malloc(sizeof(BTNode); return p;BTNode * DGCreateBT()遞歸創(chuàng)建一棵二叉樹(shù)char c;BTNode *s;s=(BTNode *)malloc(sizeo

2、f(BTNode); c=getchar();scanf(%c,&c); getchar();if(c=.)s=NULL;elses=NewNode(); s=(BTNode *)malloc(sizeof(BTNode); s-Element=c; s-LChild=DGCreateBT(); s-RChild=DGCreateBT();return s; void Visit(BTNode *p) 輸出結(jié)點(diǎn)*P的元素值 printf(%3c,p-Element);void PreOrd(BTNode *t)先序遍歷遞歸函數(shù)if(t)(*Visit)(t);PreOrd(t-LChild);

3、PreOrd(t-RChild);void InOrd(BTNode *t)中序遍歷遞歸函數(shù)if(t)InOrd(t-LChild);(*Visit)(t);InOrd(t-RChild);void PostOrd(BTNode *t)后序遍歷遞歸函數(shù)if(t)PostOrd(t-LChild);PostOrd(t-RChild);(*Visit)(t);先序遍歷中序遍歷后序遍歷先序遍歷中序遍歷后序遍歷/*void PreOrder(BTree Bt,void (*Visit)(BTNode *u) PreOrd(VisitjBtRoot);void InOrder(BTree Bt,void

4、 (*Visit)(BTNode *u)InOrd(Visit,BtRoot);void PostOrder(BTree Bt,void (*Visit)(BTNode *u) PostOrd(Visit,Bt.Root);*/int s,s1,s2;if(!p)return 0;elses1=Size(p-LChild);s2=Size(p-RChild);s=s1+s2+1;return s;int SizeofBT(BTree Bt)樹(shù)的結(jié)點(diǎn)數(shù)return Size(Bt.Root);int Depth(BTNode *p)樹(shù)的高度遞歸函數(shù)if(!p)return 0;elseretur

5、n 1+max(Depth(p-LChild),Depth(p-RChild);/*int DepthofBT(BTree Bt)樹(shù)的高度return Depth(Bt.Root);*/void PrintLeaf(BTNode *bt)if(bt!=NULL)if(bt-LChild=NULL&bt-RChild=NULL) printf(%3c,bt-Element);elsePrintLeaf(bt-LChild);PrintLeaf(bt-RChild);int s1,s2;if(bt!=NULL)if(bt-LChild=NULL&bt-RChild=NULL) return 1;e

6、lses1=CountLeaf(bt-LChild); s2=CountLeaf(bt-RChild); return s1+s2;return 0;int main(void)BTNode *bt;BTree Bt;int NumLeaf=0,TotalLeaf=0,TreeDepth=0,k=0; bt=NewNode();printf(請(qǐng)輸入先序正確樹(shù)的結(jié)點(diǎn)數(shù)據(jù)(輸入代表空)n); getchar();bt=DGCreateBT();printf(先序遍歷測(cè)試結(jié)果:”);PreOrd(bt);printf(n中序遍歷測(cè)試結(jié)果:”);InOrd(bt);printf(n后序遍歷測(cè)試結(jié)果:”);PostOrd(bt);printf(n);printf(n樹(shù)的葉子結(jié)點(diǎn)為:”);PrintLeaf(bt);/7/Z7/7/7/7/7/7/Z/7NumLeaf=Size(bt);llllllllllllllllllllllllllllllllllllllllllllllllllllll77BtRoot=bt;llk=SizeofBT(Bt);llprintf(nk=%dn,k);printf(n 樹(shù)的結(jié)點(diǎn)數(shù)為:%dn,NumLeaf);llllllllllllllllllllllllllllllllllllllllllllllllllllllTotalLeaf=CountL

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論