知識(shí)分享:數(shù)據(jù)結(jié)構(gòu)—樹的基本操作!主要遍歷及其代碼示例
今日份分享:將樹的基本操作C語言實(shí)現(xiàn),主要考察樹的先序,中序,后序和層次遍歷方法
二叉樹如圖:

先序:ABCDEGF
中序:CBEGDFA
后序:CGEFDBA
層次:ABCDEFG
BiTree.h:
主要函數(shù):
① 先序創(chuàng)建二叉樹
注意創(chuàng)建的時(shí)候如果沒有左右子樹要輸入空格
輸入:ABC_ _DE_G_ _F_ _ _
② 先序遍歷(遞歸算法)
③ 中序遍歷(遞歸算法)
④ 中序遍歷(非遞歸算法)
注意此處需要包含C++STL頭文件include<stack>
⑤ 后序遍歷(遞歸算法)
⑥ 層次遍歷(使用QUEUE)
可以包含STL<queue>或者定義一個(gè)數(shù)組,使用循環(huán)隊(duì)列即可。
⑦ Visit函數(shù)此處使用的是輸出
⑧ 計(jì)算樹的節(jié)點(diǎn)數(shù)
⑨ 計(jì)算樹的深度
Main函數(shù):
注意:
1. 遍歷函數(shù)可以寫成遞歸和非遞歸,遞歸函數(shù)更加簡(jiǎn)潔。
2. 層次遍歷需要使用隊(duì)列,可以包含C++STL<queue>或者定義一個(gè)數(shù)組,使用循環(huán)隊(duì)列即可。注意每次判斷時(shí)要把隊(duì)列的頭賦值給臨時(shí)變量P,左右子樹從隊(duì)尾插入。
3.先序創(chuàng)建樹時(shí),要注意創(chuàng)建的時(shí)候如果沒有左右子樹要輸入空格
輸入:ABC_ _DE_G_ _F_ _ _
————
希望對(duì)大家有幫助,有什么C/C++學(xué)習(xí)上的問題也可以來和我交流!
寫在最后:對(duì)于準(zhǔn)備學(xué)習(xí)C/C++編程的小伙伴,如果你想更好的提升你的編程核心能力(內(nèi)功)不妨從現(xiàn)在開始!
微信公眾號(hào):C語言編程學(xué)習(xí)基地
整理分享(多年學(xué)習(xí)的源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門教程)
歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長(zhǎng)比自己琢磨更快哦!
編程學(xué)習(xí)視頻分享:

粉絲編程交流:
