二叉樹的遍歷有三種方式,如下:
(1)前序遍歷(dlr),首先訪問根結點,然後遍歷左子樹,最後遍歷右子樹。簡記根-左-右。
(2)中序遍歷(ldr),首先遍歷左子樹,然後訪問根結點,最後遍歷右子樹。簡記左-根-右。
(3)後序遍歷(lrd),首先遍歷左子樹,然後遍歷右子樹,最後訪問根結點。簡記左-右-根。
例1:如上圖所示的二叉樹,若按前序遍歷,則其輸出序列為 。若按中序遍歷,則其輸出序列為 。若按後序遍歷,則其輸出序列為 。
前序:根a,a的左子樹b,b的左子樹沒有,看右子樹,為d,所以a-b-d。再來看a的右子樹,根c,左子樹e,e的左子樹f,e的右子樹g,g的左子樹為h,沒有了結束。連起來為c-e-f-g-h,最後結果為abdcefgh
中序:先訪問根的左子樹,b沒有左子樹,其有右子樹d,d無左子樹,下面訪問樹的根a,連起來是bda。
再訪問根的右子樹,c的左子樹的左子樹是f,f的根e,e的右子樹有左子樹是h,再從h出發找到g,到此c的左子樹結束,找到根c,無右子樹,結束。連起來是fehgc, 中序結果連起來是bdafehgc
後序:b無左子樹,有右子樹d,再到根b。再看右子樹,最下面的左子樹是f,其根的右子樹的左子樹是h,再到h的根g,再到g的根e,e的根c無右子樹了,直接到c,這時再和b找它們其有的根a,所以連起來是dbfhgeca
二叉樹的遍歷 前序 中序 後序
include includetypedef struct bintree treenode,b tree b tree root null 函式的宣告 b tree creat tree int n void print1 void preorder b tree pointer 前序遍歷 voi...
二叉樹的前序 中序 後序遍歷
樹形結構是一類重要的非線性資料結構,其中以樹和二叉樹最為常用。二叉樹是每個結點最多有兩個子樹的有序樹。通常子樹的根被稱作 左子樹 left subtree 和 右子樹 right subtree 二叉樹常被用作二叉查詢樹和二叉堆或是二叉排序樹。二叉樹的每個結點至多只有二棵子樹 不存在度大於2的結點 ...
二叉樹的前序 中序 後序遍歷
問題描述 給出一棵二叉樹返回其節點值得前序遍歷 解題思路 寫乙個遞迴函式,將每一次遍歷的節點放在vector裡,前序中序後序遍歷完成後,將vector裡的值輸出即可 實現 class solution void first vector vec,treenode root class solutio...