




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上 實驗四 二叉樹的基本操作一、實驗?zāi)康模?#160; (1)掌握二叉樹的定義和存儲表示,學(xué)會建立一棵特定二叉樹的方法; (2)掌握二叉樹的遍歷算法(先序、中序、后序遍歷算法)的思想; (3)掌握二叉樹和葉子數(shù)、深度之間的關(guān)系及聯(lián)系。二、實驗內(nèi)容: 構(gòu)造二叉樹,再實現(xiàn)二叉樹的先序、中序、后序遍歷,最后統(tǒng)計二叉樹的葉子數(shù)和深度。三、實驗步驟: (一) 需求分析 1. 二叉樹的建立首先要建立一個二叉鏈表的結(jié)構(gòu)體,包
2、含根節(jié)點和左右子樹。因為樹的每一個左右子樹又是一顆二叉樹,所以用遞歸的方法來建立其左右子樹。二叉樹的遍歷是一種把二叉樹的每一個節(jié)點訪問并輸出的過程,遍歷時根結(jié)點與左右孩子的輸出順序構(gòu)成了不同的遍歷方法,這個過程需要按照不同的遍歷的方法,先輸出根結(jié)點還是先輸出左右孩子,可以用選擇語句來實現(xiàn)。 2程序的執(zhí)行命令為: 1)構(gòu)造結(jié)點類型,然后創(chuàng)建二叉樹。 2)根據(jù)提示,從鍵盤輸入各個結(jié)點。 3)通過選擇一種方式(先序、中序或者后序)遍歷。 4)輸出結(jié)
3、果,結(jié)束。 (二)概要設(shè)計 1.二叉樹的二叉鏈表結(jié)點存儲類型定義 typedef struct Node DataType data; struct Node *LChild; struct Node *RChild; BitNode,*
4、BitTree; 2.建立如下圖所示二叉樹: 3.本程序包含六個模塊 1) 主程序模塊 2)先序遍歷模塊 3)中序遍歷模塊 4)后序遍歷模塊 5)葉子數(shù)模塊
5、60; 6)深度模塊 四、測試結(jié)果 1. 進入演示程序后的顯示主界面: 請輸入二叉樹中的元素; 先序、中序、后序遍歷和葉子數(shù)、深度分別輸出結(jié)果。 2.測試結(jié)果 以擴展先序遍歷序列輸入,其中#代表空子樹:ABC#DE#G#F# 先序遍歷序列為
6、:ABCDEGF 中序遍歷序列為:CBEGDFA 后序遍歷序列為:CGEFDBA 此二叉樹的葉子數(shù)為:3 此二叉樹的深度為:5 3.程序運行結(jié)果截圖:五、源代碼#include#include/節(jié)點聲明,數(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é)點/先序遍歷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;/計算葉子節(jié)點數(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("請按先序輸入序列(其中的“#”表示空)nn"); T = CreateBiTree();/建立二叉樹printf("n先序遍歷結(jié)果為:");PreOrderTraverse(T);/先序遍歷輸出printf("nn中序遍歷結(jié)果為:");InOrderTraverse
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 仿皮沙發(fā)濕度調(diào)節(jié)功能創(chuàng)新創(chuàng)業(yè)項目商業(yè)計劃書
- 飲品店線上推廣行業(yè)跨境出海項目商業(yè)計劃書
- 人造板品牌跨界健康產(chǎn)業(yè)創(chuàng)新創(chuàng)業(yè)項目商業(yè)計劃書
- 中醫(yī)養(yǎng)生文化園行業(yè)跨境出海項目商業(yè)計劃書
- 拓?fù)涔庾訉W(xué)器件行業(yè)跨境出海項目商業(yè)計劃書
- 歷史故事講解行業(yè)跨境出海項目商業(yè)計劃書
- 虛擬現(xiàn)實購物體驗館行業(yè)深度調(diào)研及發(fā)展項目商業(yè)計劃書
- 邵瑜名園長工作室2025年專業(yè)培訓(xùn)師資計劃
- 蘇教版三年級數(shù)學(xué)思維培養(yǎng)計劃
- 部編8年級歷史下冊分層教學(xué)計劃
- 2024年深圳市中考生物試卷真題(含答案解析)
- 溝通與演講2023學(xué)習(xí)通超星課后章節(jié)答案期末考試題庫2023年
- 三甲醫(yī)院必備醫(yī)療設(shè)備清單大全
- 播音主持重音的教學(xué)課件
- 暴雨產(chǎn)流計算(推理公式_四川省)
- NUDD新獨難異失效模式預(yù)防檢查表
- 中考數(shù)學(xué)復(fù)習(xí)經(jīng)驗交流PPT課件
- 內(nèi)部控制專項審計實施方案
- DSP課設(shè)——正弦波發(fā)生器
- 從《國際博物館》看世界博物館發(fā)展解析
- 《江蘇電力系統(tǒng)調(diào)度規(guī)程》最新版
評論
0/150
提交評論