后序遍歷的操作順序為:
- 第一步和之前一樣,如果二叉樹為空,什么都不做
- 后序遍歷左子樹
- 后序遍歷右子樹
- 訪問根結(jié)點
再來回憶下先序和中序,先序為:先根后左再右,中序為:先左再根再右。
根據(jù)之前兩篇的經(jīng)驗,后序遍歷也只不過是換換函數(shù)的調(diào)用位置。
代碼
void foreach_post_tree(BiTree T){
if(T != NULL){
foreach_post_tree(T->lchild);
foreach_post_tree(T->rchild);
printf("%c ",T->data);
}
}
執(zhí)行結(jié)果為:
G D B E F C A
跟視頻中結(jié)果一致。so easy。
這三種遍歷都是比較簡潔易懂的,缺點是開銷比較大。
有問題肯定就有解決,所以接下來還要學(xué)洗二叉樹的非遞歸遍歷。