




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上二叉樹(shù)的建立與遍歷實(shí)驗(yàn)報(bào)告 級(jí) 班 年 月 日 姓名 學(xué)號(hào)_ 1實(shí)驗(yàn)題目建立一棵二叉樹(shù),并對(duì)其進(jìn)行遍歷(先序、中序、后序),打印輸出遍歷結(jié)果。2需求分析本程序用VC編寫(xiě),實(shí)現(xiàn)建立一棵二叉樹(shù)的功能,并對(duì)其進(jìn)行遍歷(先序、中序、后序),并且打印輸出遍歷結(jié)果。 輸入的形式和輸入值的范圍: 輸入二叉樹(shù)的先序,當(dāng)其結(jié)點(diǎn)為空時(shí),需要輸入#。(輸入的先序僅含字母和#) 輸出的形式:輸出二叉樹(shù)的先序、中序、后序。 程序所能達(dá)到的功能:實(shí)現(xiàn)建立一棵二叉樹(shù)的功能,并對(duì)其進(jìn)行遍歷(先序、中序、 后序),并且打印輸出遍歷結(jié)果。 測(cè)試數(shù)據(jù):輸入數(shù)據(jù):輸入ABC#DE#G#F#輸出結(jié)果:二叉樹(shù)的
2、先序遍歷為:ABCDEGF二叉樹(shù)的中序遍歷為:CBEGDFA二叉樹(shù)的后序遍歷為:CGEFDBA3概要設(shè)計(jì)1) 為了實(shí)現(xiàn)上述程序功能,需要定義二叉鏈表的抽象數(shù)據(jù)類(lèi)型:typedef struct BinaryTreeNode TElemType data;/二叉樹(shù)結(jié)點(diǎn)中的數(shù)據(jù)域 struct BinaryTreeNode *lchild , *rchild; /二叉樹(shù)結(jié)點(diǎn)的左孩子和右孩子指針BinaryTreeNode ,*BiTree;基本操作:A. void CreateBinaryTree (BiTree &T) 初始條件:無(wú)操作結(jié)果:建立了二叉樹(shù)。B. void PreOrder
3、(BiTree T) 初始條件:存在一棵二叉樹(shù)操作結(jié)果:先序遍歷二叉樹(shù),并且輸出先序遍歷的結(jié)果。C. void MidOrder(BiTree T)初始條件:存在一棵二叉樹(shù)操作結(jié)果:中序遍歷二叉樹(shù),并且輸出中序遍歷的結(jié)果。D. void PostOrder(BiTree T)初始條件:存在一棵二叉樹(shù)操作結(jié)果:后序遍歷二叉樹(shù),并且輸出后序遍歷的結(jié)果。程序包含5個(gè)函數(shù):主函數(shù)main()先序建立二叉樹(shù) void CreateBinaryTree (BiTree &T)先序遍歷二叉樹(shù),并且輸出先序遍歷的結(jié)果 void PreOrder(BiTree T); 中序遍歷二叉樹(shù),并且輸出中序遍歷的
4、結(jié)果 void MidOrder(BiTree T);序遍歷二叉樹(shù),并且輸出后序遍歷的結(jié)果 void PostOrder(BiTree T);主函數(shù)main()CreateBinaryTreePreOrderMidOrderPostOrder各函數(shù)間關(guān)系如下:4詳細(xì)設(shè)計(jì)1) 二叉鏈表的定義typedef struct BinaryTreeNode定義一個(gè)樹(shù)結(jié)點(diǎn)的數(shù)據(jù)域;定義一個(gè)該結(jié)點(diǎn)的左孩子指針和右孩子指針;2) void CreateBinaryTree (BiTree &T)/先序建立二叉樹(shù) 輸入一個(gè)字符量;if(輸入字符= '#') T指針置值為NULL;else
5、 動(dòng)態(tài)申請(qǐng)一個(gè)指向二叉樹(shù)結(jié)構(gòu)體的指針 把輸入字符賦值給新指針的數(shù)據(jù)域data; 調(diào)用CreateBinaryTree(新指針的lchild成員); 調(diào)用CreateBinaryTree(新指針的rchild成員); 3) void PreOrder(BiTree T) /先序遍歷二叉樹(shù) if(T指針不為NULL)輸出T的data域;先序遍歷左子樹(shù); 先序遍歷右子樹(shù);4) void MidOrder(BiTree T) /中序遍歷二叉樹(shù) if(T指針不為NULL)中序遍歷左子樹(shù);輸出T的data域;中序遍歷右子樹(shù);5) void PostOrder(BiTree T) /中序遍歷二叉樹(shù) if(T
6、指針不為NULL) 后序遍歷左子樹(shù);后序遍歷右子樹(shù);輸出T的data域;5調(diào)試分析在編寫(xiě)程序過(guò)程中,我將scanf(”%c”,&ch)中的%c寫(xiě)成%d,程序運(yùn)行了一段時(shí)間沒(méi)有結(jié)果,經(jīng)過(guò)檢查,發(fā)現(xiàn)了這個(gè)錯(cuò)誤。編寫(xiě)程序不能有一點(diǎn)馬虎,否則后續(xù)糾錯(cuò)工作很辛苦,編寫(xiě)程序的進(jìn)度變慢。6使用說(shuō)明程序名為:二叉樹(shù)遍歷.exe,運(yùn)行環(huán)境為DOS。程序執(zhí)行后顯示輸入字符,先序建立二叉樹(shù):此時(shí)請(qǐng)輸入一棵二叉樹(shù)的先序,并且當(dāng)結(jié)點(diǎn)為空時(shí),輸入#輸入完成后,會(huì)輸出該二叉樹(shù)的先序遍歷、中序遍歷和后序遍歷7測(cè)試結(jié)果1) 輸入數(shù)據(jù):輸入ABC#DE#G#F#輸出結(jié)果:二叉樹(shù)的先序遍歷為:ABCDEGF二叉樹(shù)的中序遍歷
7、為:CBEGDFA二叉樹(shù)的后序遍歷為:CGEFDBA2) 輸入數(shù)據(jù):輸入AB#C#輸出結(jié)果:二叉樹(shù)的先序遍歷為:ABC二叉樹(shù)的中序遍歷為:BAC二叉樹(shù)的后序遍歷為:BCA3) 二叉樹(shù)如下:先序輸入這棵二叉樹(shù),程序運(yùn)行結(jié)果為:程序源代碼:#include<stdio.h>#include<stdlib.h>typedef char TElemType;typedef struct BinaryTreeNode/二叉鏈表的存儲(chǔ)結(jié)構(gòu)TElemType data;struct BinaryTreeNode *lchild , *rchild;BinaryTreeNode ,*B
8、iTree;void CreateBinaryTree (BiTree &T)/先序建立二叉樹(shù) char ch;scanf("%c",&ch);if(ch = '#') T=NULL;else if(!(T = (BinaryTreeNode *)malloc (sizeof(BinaryTreeNode) exit (-1);/判斷malloc函數(shù)是否獲得符合要求的內(nèi)存塊,是則繼續(xù)程序,否則使用exit函數(shù)強(qiáng)制退出程序/如果malloc函數(shù)無(wú)法獲得符合要求的內(nèi)存塊,malloc函數(shù)會(huì)返回NULL指針T->data=ch;CreateB
9、inaryTree(T->lchild);CreateBinaryTree(T->rchild);void PreOrder(BiTree T)/先序遍歷二叉樹(shù)if(T)printf("%c ",T->data);PreOrder(T->lchild); PreOrder(T->rchild);void MidOrder(BiTree T)/中序遍歷二叉樹(shù)if(T)MidOrder(T->lchild);printf("%c ",T->data);MidOrder(T->rchild);void PostOrder(BiTree T)/后序遍歷二叉樹(shù)if(T)PostOrder(T->lchild);PostOrder(T->rchild);printf("%c ",T->data);void main()BiTree Tree;printf("輸入字符,先序建立二叉樹(shù):n");CreateBinaryTree(Tree);printf("二叉樹(shù)的先序
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字營(yíng)銷(xiāo)對(duì)廣告史影響-洞察闡釋
- 老齡化背景下的工傷保險(xiǎn)服務(wù)創(chuàng)新-洞察闡釋
- 可逆加密性能優(yōu)化-洞察及研究
- 素材版權(quán)交易市場(chǎng)-洞察闡釋
- 三峽電力職業(yè)學(xué)院《餐飲服務(wù)管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 青海柴達(dá)木職業(yè)技術(shù)學(xué)院《水文學(xué)與水文地質(zhì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧何氏醫(yī)學(xué)院《唱歌語(yǔ)言訓(xùn)練》2023-2024學(xué)年第二學(xué)期期末試卷
- 鹽城工業(yè)職業(yè)技術(shù)學(xué)院《貨物多式聯(lián)運(yùn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 南陽(yáng)科技職業(yè)學(xué)院《高等通風(fēng)工程》2023-2024學(xué)年第二學(xué)期期末試卷
- 青島農(nóng)業(yè)大學(xué)《寫(xiě)字與書(shū)法》2023-2024學(xué)年第二學(xué)期期末試卷
- 《化工和危險(xiǎn)化學(xué)品生產(chǎn)經(jīng)營(yíng)單位重大生產(chǎn)安全事故隱患判定標(biāo)準(zhǔn)》解讀與培訓(xùn)
- 優(yōu)化能源消耗的綠色I(xiàn)T部署戰(zhàn)略規(guī)劃
- 2025年上半年內(nèi)蒙古包頭市市直事業(yè)單位招考易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 4.2.2光柵傳感器測(cè)量位移
- 2025年華遠(yuǎn)陸港集團(tuán)所屬華遠(yuǎn)陸港網(wǎng)絡(luò)貨運(yùn)(山西)限公司招聘(72人)管理單位筆試遴選500模擬題附帶答案詳解
- 國(guó)家開(kāi)放大學(xué)《金融學(xué)》機(jī)考題庫(kù)
- 證據(jù)法學(xué)復(fù)習(xí)資料
- 老年骨關(guān)節(jié)病康復(fù)護(hù)理
- 【MOOC】機(jī)械工程測(cè)試技術(shù)-東南大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 2024版血液透析醫(yī)院感染預(yù)防與控制標(biāo)準(zhǔn)
- 縣委督查業(yè)務(wù)培訓(xùn)
評(píng)論
0/150
提交評(píng)論