




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上 實(shí)驗(yàn)四 二叉樹的基本操作一、實(shí)驗(yàn)?zāi)康模?#160; (1)掌握二叉樹的定義和存儲(chǔ)表示,學(xué)會(huì)建立一棵特定二叉樹的方法; (2)掌握二叉樹的遍歷算法(先序、中序、后序遍歷算法)的思想; (3)掌握二叉樹和葉子數(shù)、深度之間的關(guān)系及聯(lián)系。二、實(shí)驗(yàn)內(nèi)容: 構(gòu)造二叉樹,再實(shí)現(xiàn)二叉樹的先序、中序、后序遍歷,最后統(tǒng)計(jì)二叉樹的葉子數(shù)和深度。三、實(shí)驗(yàn)步驟: (一) 需求分析 1. 二叉樹的建立首先要建立一個(gè)二叉鏈表的結(jié)構(gòu)體,包
2、含根節(jié)點(diǎn)和左右子樹。因?yàn)闃涞拿恳粋€(gè)左右子樹又是一顆二叉樹,所以用遞歸的方法來建立其左右子樹。二叉樹的遍歷是一種把二叉樹的每一個(gè)節(jié)點(diǎn)訪問并輸出的過程,遍歷時(shí)根結(jié)點(diǎn)與左右孩子的輸出順序構(gòu)成了不同的遍歷方法,這個(gè)過程需要按照不同的遍歷的方法,先輸出根結(jié)點(diǎn)還是先輸出左右孩子,可以用選擇語句來實(shí)現(xiàn)。 2程序的執(zhí)行命令為: 1)構(gòu)造結(jié)點(diǎn)類型,然后創(chuàng)建二叉樹。 2)根據(jù)提示,從鍵盤輸入各個(gè)結(jié)點(diǎn)。 3)通過選擇一種方式(先序、中序或者后序)遍歷。 4)輸出結(jié)
3、果,結(jié)束。 (二)概要設(shè)計(jì) 1.二叉樹的二叉鏈表結(jié)點(diǎn)存儲(chǔ)類型定義 typedef struct Node DataType data; struct Node *LChild; struct Node *RChild; BitNode,*
4、BitTree; 2.建立如下圖所示二叉樹: 3.本程序包含六個(gè)模塊 1) 主程序模塊 2)先序遍歷模塊 3)中序遍歷模塊 4)后序遍歷模塊 5)葉子數(shù)模塊
5、60; 6)深度模塊 四、測試結(jié)果 1. 進(jìn)入演示程序后的顯示主界面: 請(qǐng)輸入二叉樹中的元素; 先序、中序、后序遍歷和葉子數(shù)、深度分別輸出結(jié)果。 2.測試結(jié)果 以擴(kuò)展先序遍歷序列輸入,其中#代表空子樹:ABC#DE#G#F# 先序遍歷序列為
6、:ABCDEGF 中序遍歷序列為:CBEGDFA 后序遍歷序列為:CGEFDBA 此二叉樹的葉子數(shù)為:3 此二叉樹的深度為:5 3.程序運(yùn)行結(jié)果截圖:五、源代碼#include#include/節(jié)點(diǎn)聲明,數(shù)據(jù)域、左孩子指針、右孩子指針typedef struct BiTNode ch
7、ar data; struct BiTNode *lchild,*rchild;BiTNode,*BiTree; /先序建立二叉樹BiTree CreateBiTree() char ch;BiTree T; scanf("%c",&ch); if(ch='#')T=NULL; else
8、 T = (BiTree)malloc(sizeof(BiTNode); T->data = ch; T->lchild = CreateBiTree(); T->rchild = CreateBiTree(); return T;/返回根節(jié)點(diǎn)/先序遍歷void PreOrderTraverse(BiTree T) if(T)
9、 printf("%c",T->data); PreOrderTraverse(T->lchild); PreOrderTraverse(T->rchild); /中序遍歷void InOrderTraverse(BiTree T) if(T) InOrderTraverse(T->
10、lchild); printf("%c",T->data); InOrderTraverse(T->rchild); /后序遍歷void PostOrderTraverse(BiTree T) if(T) PostOrderTraverse(T->lchild); PostOrderTraverse(
11、T->rchild); printf("%c",T->data); /求二叉樹的深度int Depth(BiTree T) int dep=0,depl,depr;if(!T) dep=0;elsedepl=Depth(T->lchild);depr=Depth(T->rchild);dep=1+(depl>depr?depl:depr);return dep;/計(jì)算葉子節(jié)點(diǎn)數(shù)int leef(BiTree T)if(!T)return 0;e
12、lseif(T->lchild =NULL&&T->rchild =NULL)return 1;else return leef(T->lchild) +leef(T->rchild );/主函數(shù)void main() BiTree T;printf("請(qǐng)按先序輸入序列(其中的“#”表示空)nn"); T = CreateBiTree();/建立二叉樹printf("n先序遍歷結(jié)果為:");PreOrderTraverse(T);/先序遍歷輸出printf("nn中序遍歷結(jié)果為:");InOrderTraverse
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國家用光脫毛器具行業(yè)市場全景分析及前景機(jī)遇研判報(bào)告
- 中國鞋面橫織機(jī)行業(yè)市場競爭格局及投資前景展望報(bào)告
- 中醫(yī)培訓(xùn)課件 哪些
- 2025年中國車床行業(yè)市場深度評(píng)估及投資策略咨詢報(bào)告
- 中國幕墻裝飾板市場規(guī)模預(yù)測及投資戰(zhàn)略咨詢報(bào)告
- 2025年 重慶市長壽區(qū)教育事業(yè)單位定向招聘考試筆試試題附答案
- 2025年 新疆鐵道職業(yè)技術(shù)學(xué)院招聘考試筆試試題附答案
- 2025年 楚雄州楚雄市緊密型醫(yī)共體編制外職工招聘筆試試題附答案
- 中國蔬菜種場運(yùn)植市場競爭格局及行業(yè)投資前景預(yù)測報(bào)告
- 2025年中國展會(huì)展覽行業(yè)發(fā)展趨勢預(yù)測及投資戰(zhàn)略咨詢報(bào)告
- 2025年四川省自貢市中考物理試卷及答案
- 2025年度衛(wèi)生招聘考試(財(cái)務(wù))新版真題卷(附詳細(xì)解析)
- 2025年6月14日萍鄉(xiāng)市事業(yè)單位面試真題及答案解析
- 2025年環(huán)境工程考試試卷及答案
- 畢業(yè)答辯-拆裝式自走式單軌道山地果園運(yùn)輸機(jī)設(shè)計(jì)
- 2025年高考真題-語文(全國二卷) 含解析
- 2025年廬山市國有投資控股集團(tuán)有限公司招聘筆試沖刺題(帶答案解析)
- 2024年深圳市中考生物試卷真題(含答案解析)
- 生物基可降解地膜行業(yè)深度調(diào)研及發(fā)展項(xiàng)目商業(yè)計(jì)劃書
- 出租車租憑合同協(xié)議書
- GB/T 24217-2025洗油
評(píng)論
0/150
提交評(píng)論