2023年數(shù)據(jù)結(jié)構(gòu)實驗報告樹_第1頁
2023年數(shù)據(jù)結(jié)構(gòu)實驗報告樹_第2頁
2023年數(shù)據(jù)結(jié)構(gòu)實驗報告樹_第3頁
2023年數(shù)據(jù)結(jié)構(gòu)實驗報告樹_第4頁
2023年數(shù)據(jù)結(jié)構(gòu)實驗報告樹_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

笫后擊7本次摩數(shù)據(jù)結(jié)構(gòu)實驗報告院系名稱:信息學(xué)院專業(yè)班級:計科1001班姓名:董華偉學(xué)號:--需求分析:掌握二叉樹的存儲結(jié)構(gòu)以及其各種操作,涉及二叉樹的建立,二叉樹的前序遍歷,中序遍歷和后序遍歷。二,概要設(shè)計存儲結(jié)構(gòu)的定義如下:typedefstructBinTNode(?chardata;?structBinTNode*lch,*rch;}BinTNode,*BinTree功能函數(shù):voidCreatBinTree(BinTree&t)功能:創(chuàng)建二又樹voidPreOrderTraverse(BinTreet)功能:前序遍歷二叉樹voidTnOerderTraverse(BinTreet)功能:中序遍歷二叉樹ivoidLevelOrder(BinTreet)功能:層次遍歷二叉樹intBinTreeLeaf(BinTNode*t)功能:計算二叉樹的葉子個數(shù)三、源程序#include<stdio.h>#include<stdlib.h>intf=0;typedefstructBinTNode(chardata;ostructBinTNode*lch,*rch;}BinTNode,*BinTree;//創(chuàng)建二叉樹voidCreatBinTree(BinTree&t)(charch;。fflush(stdin);printf(〃請輸入二叉樹元素,用*表達空節(jié)點\n〃);oscanf(,z%c",&ch);4f(ch==,*')>?t=NULL;ae1sea{■if(!(t=(BinTNode*)malloc(sizeof(BinTNode))))aexit(-2);。t—>data=ch;CreatBinTree(t->lch);~CreatBinTree(t->rch);}//前序遍歷二叉樹voidPreOrderTraverse(BinTreet)(if(t)(printfC%c",t->data);。PreOrderTraverse(t->lch);。PreOrderTraverse(t->rch);))〃中序遍歷二叉樹voidIn0erderTraverse(BinTreet)(BinTrees[100];inttop=0;inta=l;Toowhile(t)。(Os[top]=t;=top++;t=t->lch;00(top-0)ooa=0;e1se{~<>top—;at=s[top];aprintf(,/%c,/,t—>data);。t=t->rch;}}while(a);)//層次遍歷二叉樹voidLevelOrder(BinTreet)(BinTreequeue[100];intfront=-1;ointrear=0:aBinTreep=t;queue[rear]=p;hile(front!=rear)(p=queue[++front];?>printf(,z%c\n”,p—>data);?if(p->lch)aqueue[++rear]=p->lch;。if(p—>rch)queue[++rear]=p->rch;//計算二叉樹的葉子個數(shù)intBinTrccLcaf(BinTNodc*t)(oif(t)(。if(t->lch==NULL&&t->rch==NULL)0f=+l;a}?eIse6{BinTreeLeaf(t—>lch);?>oBinTreeLeaf(t->rch);。})?returnf;)voidmain()(*structBinTNode*t=NULL;。printf(〃\n〃);printf(z,0.退出\n〃);。printf(,z1.創(chuàng)建二叉樹\n〃);。printf("2.先序遍歷\n");printfC3.中序遍歷\n");printf(〃4.層次遍歷\n〃);oprintf(n5.計算葉子個數(shù)\n〃);oprintf(〃\n");oprintf("pleaseselectthenum:〃);?scanf&k);。switch(k)(case1:aCreatBinTree(t);break;~case2:。?PreOrderTraverse(t);。break;case3:~oTnOerderTraverse(t);o?break;case4:~Leve1Order(t);

oocase5:aBinTreeLeaf(t);o。printf(〃該二叉樹葉子節(jié)點個數(shù)為:%d\n〃,f);abreak;case0:oobreak;odefault:。printf('*Error.Pieaseinputagain.\n〃);abreak;。}。}whi1e(k!=0);)四.實驗結(jié)果4MJ杈叉歷歷歷子-出建算

退創(chuàng)先中層計012345pleaseselectthenun:1輸入二叉樹元素,輸入二叉樹元素,谿入二叉樹元素,輸入二叉樹元素,輸入二叉樹元素,輸入二叉樹元素,輸入二叉樹元素,用V表示空節(jié)點用”表示空節(jié)點用”表示空節(jié)點用M表示空節(jié)點用M表示空節(jié)點用井表示空節(jié)點用pleaseselectthe

溫馨提示

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

最新文檔

評論

0/150

提交評論