二叉樹的創(chuàng)建與遍歷操作.doc_第1頁
二叉樹的創(chuàng)建與遍歷操作.doc_第2頁
二叉樹的創(chuàng)建與遍歷操作.doc_第3頁
二叉樹的創(chuàng)建與遍歷操作.doc_第4頁
二叉樹的創(chuàng)建與遍歷操作.doc_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

年級(jí)11級(jí)班號(hào) 2學(xué)號(hào)11064061專業(yè)自動(dòng)化姓名馬俊杰實(shí)驗(yàn)名稱二叉樹的創(chuàng)建和遍歷實(shí)驗(yàn)類型設(shè)計(jì)型綜合型創(chuàng)新型實(shí)驗(yàn)?zāi)康幕蛞髮?shí)驗(yàn)要求:1)從鍵盤輸入二叉樹的各結(jié)點(diǎn)值,按先序遞歸方式創(chuàng)建二叉樹2)分別實(shí)現(xiàn)先序、中序、后序遞歸遍歷二叉樹3)輸出二叉樹的高度4)輸出二叉樹的按層次遍歷序列*5)以菜單方式運(yùn)行先序方式創(chuàng)建二叉樹: 輸入結(jié)點(diǎn)值的順序必須對(duì)應(yīng)二叉樹先序遍歷的順序,并約定以某個(gè)字符(如 或等)作為空子樹. 例如:對(duì)于右圖中的二叉樹, 按下列順序輸入字符: ABCDEGF ,創(chuàng)建二叉樹。ABCDEFG實(shí)驗(yàn)原理(算法流程)#include #include #include #define maxsize 1024typedef char datatype;typedef struct nodedatatype data;struct node *lchild,*rchild;bitree;void menu()printf(本代碼實(shí)現(xiàn)二叉樹的如下基本功能,請(qǐng)選擇對(duì)應(yīng)的功能選項(xiàng)進(jìn)行相應(yīng)操作:n);printf(1.按先序遞歸方式創(chuàng)建二叉樹n);printf(2.先序遞歸遍歷n);printf(3.中序遞歸遍歷n);printf(4.后序遞歸遍歷n);printf(5.按層次遍歷n);printf(6.輸出二叉樹高度n);printf(0.退出程序n);bitree *Creat()char ch;bitree *T;scanf(%c,&ch);if(ch=)T=NULL;elseT=(bitree*)malloc(sizeof(bitree);T-data=ch;T-lchild=Creat();T-rchild=Creat();return T; void preorder(bitree *T)if(T!=NULL)printf(%c,T-data);preorder(T-lchild);preorder(T-rchild);return;void inorder(bitree *T)if(T!=NULL)inorder(T-lchild);printf(%c,T-data);inorder(T-rchild);return;void postorder(bitree *T)if(T!=NULL)postorder(T-lchild);postorder(T-rchild);printf(%c,T-data);return;void levelorder(bitree *T) bitree *q20;int front=0,rear=0;if(T!=NULL) rear+;qrear=T;while(front!=rear)front+;T=qfront; printf(%c,T-data);if(T-lchild)rear+;qrear=T-lchild;if(T-rchild)rear+;qrear=T-rchild;int fstdepth(bitree *T)int d1,d2;if(T=NULL) return 0;elsed1=fstdepth(T-lchild);d2=fstdepth(T-rchild);return 1+(d1d2?d1:d2); void main()int choice=0,dep;bitree *T;menu();printf(本代碼實(shí)現(xiàn)二叉樹的幾個(gè)基本功能,請(qǐng)選擇對(duì)應(yīng)的功能選項(xiàng)進(jìn)行相應(yīng)操作:);fflush(stdin);scanf(%d,&choice);getchar();while(1)switch(choice)case 1:printf(請(qǐng)按先序遞歸方式輸入二叉樹各結(jié)點(diǎn):n);T=Creat();printf(二叉樹創(chuàng)建n);break;case 2:preorder(T);break;case 3:inorder(T);break;case 4:postorder(T);break;11111111111111case 5:levelorder(T);break;case 6:dep=fstdepth(T);printf(二叉樹的深度dep=%dn,dep);break;case 0:exit(0);menu();printf(本代碼實(shí)現(xiàn)二叉樹的幾個(gè)基本功能,請(qǐng)選擇對(duì)應(yīng)的功能選項(xiàng)進(jìn)行相應(yīng)操作:);

溫馨提示

  • 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. 人人文庫(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)論