從根部 a 開始,然後開始遍歷左子樹,直接找到 b ,檢視 b 有沒有左子樹,有 d,再檢視 d 有沒有子樹,沒有,d 已經是葉子,所以第二個是 d。
倒回去,取中 b,第三個數是 b。檢視 b 有沒有右子樹,有 e 。檢視 e 有沒有子樹,有 g (左),h (右)。所有後面三個數是 egh
先查左子樹,存在繼續查詢直到找到最左的葉子 d,第乙個存進去。
返回上一級,找到中 b,存第二個數進去。
查詢 b 的右子樹,存在 e,檢視 e 是否存在 左子樹,存在 g 左葉子和 h 右葉子,所以是 geh。
最後 h 返回到 a,開始遍歷右邊的子樹,與上同理不解釋。
取做最左的葉子 d,返回上一級 b,檢視有沒有右子樹,存在最近結點 e,檢視 e 有沒有左子樹,存在左葉子 g,存第二個數 g
返回上一結點 b,檢視是否存在右子樹,發現存在右葉子 h,存 h,後面緊跟著 e b。
b 返回上一結點 a,檢視是否存在右子樹,找到最近的一節點 c,檢視 c 是否存在左子樹,不存在左子樹,檢視是否存在右子樹,存在最近結點 f,以此類推,後面的就是 j i f c
二叉樹先序遍歷 中序遍歷 後序遍歷
輸入二叉樹的先序遍歷序列和中序遍歷序列,輸出該二叉樹的後序遍歷序列。非建二叉樹版本 include includeusing namespace std string preord,inord void rebuild int preleft,int preright,int inleft,int ...
二叉樹先序遍歷 中序遍歷 後序遍歷
二叉樹先序遍歷 中序遍歷 後序遍歷 include include typedef struct bitnodebitnode,bitree void visit bitnode c 先序遍歷 void preorder bitree t 中序遍歷 void inorder bitree t 後序遍...
二叉樹先序遍歷,中序遍歷,後序遍歷,層次遍歷。
原理 如圖 先序遍歷結果為 abdhecfg 首先從根節點開始,然後左節點,左節點成為根節點,然後再左節點,然後右節點 如果左子樹遍歷完後就遍歷該根節點的右子樹 中序遍歷結果為 hdbeafcg 當左節點被讀取後,左節點被當作根節點 後序遍歷結果為 hdebfgca 注意每個節點的左右子樹必須遍歷完...