




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 體育專用地坪漆項(xiàng)目籌資方案
- 教育咨詢公司教育質(zhì)量改進(jìn)方案
- 學(xué)校建設(shè)施工流程實(shí)施方案
- 個(gè)人借款協(xié)議范文及示例
- 西師版數(shù)學(xué)教材使用計(jì)劃
- 2025心理健康教育拓展訓(xùn)練心得體會(huì)
- 交通運(yùn)輸行業(yè)勞動(dòng)力和設(shè)備配置計(jì)劃
- 科技助力社區(qū)體育設(shè)施升級(jí)
- 2025年項(xiàng)目合作策劃及風(fēng)險(xiǎn)分配協(xié)議
- 2025年中小企業(yè)人力資源協(xié)議范本
- 音樂(lè)教育國(guó)際化進(jìn)程-洞察分析
- 2025年中鐵特貨物流股份限公司招聘畢業(yè)生52人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 1學(xué)會(huì)尊重-尊重自己(說(shuō)課稿 )-2023-2024學(xué)年道德與法治六年級(jí)下冊(cè)統(tǒng)編版
- 單兵綜合演練
- 疼痛中醫(yī)護(hù)理
- 歐式風(fēng)格的室內(nèi)設(shè)計(jì)
- 現(xiàn)代物流基礎(chǔ)題庫(kù)與參考答案
- 《工業(yè)設(shè)備水射流清洗質(zhì)量驗(yàn)收規(guī)范》
- 特色療法中藥穴位敷貼課件
- 春季傳染病中醫(yī)防治知識(shí)講座
- 2024寵物租賃服務(wù)詳細(xì)協(xié)議協(xié)議
評(píng)論
0/150
提交評(píng)論