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

下載本文檔

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

文檔簡(jiǎn)介

久過(guò)擊/本次厚

數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告

院系名稱:信息學(xué)院___________

專業(yè)班級(jí):計(jì)科1001班________

姓名:董華偉

學(xué)號(hào):

一.需求分析:

掌握二叉樹的存儲(chǔ)結(jié)構(gòu)以及其各種操作,涉及二叉樹的建立,二叉樹的前序遍歷,

中序遍歷和后序遍歷。

二.概要設(shè)計(jì)

存儲(chǔ)結(jié)構(gòu)的定義如下:

typedefstructBinTNode

(

ochardata;

ostructBinTNode*lch,*rch;

}BinTNode,*BinTree

功能函數(shù):

voidGreatBinTree(BinTree&t)

功能:創(chuàng)建二叉樹

voidPreOrderTraverse(BinTreet)

功能:前序遍歷二叉樹

voidInOerderTraverse(BinTreet)

功能:中序遍歷二叉樹

ivoidLevelOrder(BinTreet)

功能:層次遍歷二叉樹

intBinTreeLeaf(BinTNode*t)

功能:計(jì)算二叉樹的葉子個(gè)數(shù)

三、源程序

#include<stdio.h>

#include<stdlib.h>

intf=0;

typedefstructBinTNode

I

chardata;

tructBinTNode*lch,*rch;

}BinTNode,*BinTree;

〃創(chuàng)建二叉樹

voidCreatBinTree(BinTree&t)

{

charch;

。fflush(stdin);

printf(〃請(qǐng)輸入二叉樹元素,用*表達(dá)空節(jié)點(diǎn)\n〃);

dscanf(〃%c”,&ch);

df(ch==,*')

的t=NULL;

ge1se

8(

if(!(t=(BinTNode*)malloc(sizeof(BinTNode))))

gexit(-2);

。t->data=ch;

CreatBinTree(t->lch);

ooCreatBinTree(t->rch);

)

//前序遍歷二叉樹

voidPreOrderTraverse(BinTreet)

if(t)

(

printf("%c",t->data);

。PreOrderTraverse(t->lch);

bPreOrderTraverse(t—>rch);

i

)

〃中序遍歷二叉樹

voidInOerderTraverse(BinTreet)

(

BinTrees[100];

inttop=0;

inta=l;

0do

?>while(t)

0{

bs[top]=t;

Mtop++;

8t=t->lch;

df(top==0)

。3a=0;

e1se{

次top—;

gt=s[top];

gprintf(z/%czz,t—>data);

。t=t->rch;

)

}while(a);

)

//層次遍歷二叉樹

voidLevelOrder(BinTreet)

(

BinTreequeue[100];

intfront=-1;

intrear=0;

,BinTreep=t;

queue[rear]=p;

owhile(front!=rear)

(

p=queue[++front];

gprintf(〃%c\n〃,p—>data);

?if(p->lch)

gqueueear]=p->lch;

匕if(p—>rch)

queue[++rear]=p->rch;

)

//計(jì)算二叉樹的葉子個(gè)數(shù)

intBinTreeLeaf(BinTNode*t)

oif(t)

{

。if(t->1ch==NULL&&t->rch==NULL)

8{

。f=+l;

g}

geIse

b{

BinTreeLeaf(t—>lch);

^BinTreeLeaf(t->rch);

0}

}

oreturnf;

)

voidmain()

(

ostructBinTNode*t=NULL;

ointk;

?do

oprintf(〃-----------------\n〃);

printf(,z0.退出\n〃);

printfC1.創(chuàng)建二叉樹\n〃);

printf。2.先序遍歷\n〃);

printf(z,3.中序遍歷\n”);

Printf(〃4.層次遍歷\n〃);

。printf(M5.計(jì)算葉子個(gè)數(shù)\n〃);

3printf(〃-----------------------\n");

。printf(Hpleaseselectthenum:〃);

ascanf(〃%d〃,&k);

。switch(k)

(

case1:

gCreatBinTree(t);

break;

8cdse2:

。?>PreOrderTraverse(t);

。break;

case3:

^In0erderTraverse(t);

abreak;

case4:

aLeve1Order(t);

break;

scase5:

gBinTreeLeaf(t);

。。printf("該二叉樹葉子節(jié)點(diǎn)個(gè)數(shù)為:%d\n,z,f);

8break;

case0:

o?>break;

。default:

匕printf(nError.Pieaseinputagain.\n〃);

8break;

whi1e(k!=0);

)

四.實(shí)驗(yàn)結(jié)果

_權(quán)

叉4

1-M

創(chuàng)J

21歷

^

3£歷

4^歷

個(gè)

數(shù)

5子

pleaseselectthenun:1

渝入二叉樹元素,用#表示空節(jié)點(diǎn)

曾入二叉樹元素,

用#表小空節(jié)點(diǎn)

曾入二叉樹元素,

用#表示空節(jié)點(diǎn)

bi入二叉樹元素,用#表示空節(jié)點(diǎn)

"入二叉樹元素,

用#表示空節(jié)點(diǎn)

,入二叉樹元素,

用#表示空節(jié)點(diǎn)

"入二叉樹元素,

用#表示空節(jié)點(diǎn)

0退出

創(chuàng)

叉4

1-M

J

2-歷

31歷

層算

4歷

計(jì)

個(gè)數(shù)

5?子

1s

peaethenun:2

bc

退

0-出

創(chuàng)

叉4

1-M

-J

2-歷

3-歷

4-歷

計(jì)

個(gè)數(shù)

5-子

pleases

溫馨提示

  • 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)論