二叉樹的遍歷分為前序遍歷、中序遍歷、後序遍歷
前序遍歷是指,對於樹中的任意節點來說,先列印這個節點,然後再列印它的左子樹,最後列印它的右子樹。
中序遍歷是指,對於樹中的任意節點來說,先列印它的左子樹,然後再列印它本身,最後列印它的右子樹。
後序遍歷是指,對於樹中的任意節點來說,先列印它的左子樹,然後再列印它的右子樹,最後列印這個節點本身。
實際上,二叉樹的前、中、後序遍歷就是乙個遞迴的過程,比如,前序遍歷,其實就是先列印根節點,然後再遞迴地列印左子樹,最後遞迴地列印右子樹。
寫遞迴**的關鍵,就是看能不能寫出遞推公式,而寫遞推公式的關鍵就是,如果要解決問題 a,就假設子問題 b、c 已經解決,然後再來看如何利用 b、c 來解決 a。所以,我們可以把前、中、後序遍歷的遞推公式都寫出來
前序遍歷的遞推公式:
preorder(r) = print r->preorder(r->left)->preorder(r->right)
中序遍歷的遞推公式:
inorder(r) = inorder(r->left)->print r->inorder(r->right)
後序遍歷的遞推公式:
postorder(r) = postorder(r->left)->postorder(r->right)->print r
void preorder(node* root)
void inorder(node* root)
void postorder(node* root)
此篇文章為學習極客時間的課程的筆記,侵刪。 二叉樹的前序遍歷 中序遍歷 後序遍歷
二叉樹分為根節點 左子節點 右子節點,如下圖所示,前序遍歷的順序是 根左右 即 abc,中序遍歷的順序是 左根右 即 bac,後續遍歷的順序是 左右根 即 bca,給定乙個二叉樹,求三種遍歷方式的結果,以下圖為例 前序遍歷 根左右 a b d e f g c h k 中序遍歷 左根右 d b f e...
二叉樹的前序遍歷 中序遍歷 後序遍歷
樹的遍歷一般是從左至右,按照根結點在前中後的順序分為了前序遍歷,中序遍歷和後序遍歷 前序遍歷 根結點 左節點 右節點 中序遍歷 左節點 根結點 右節點 後序遍歷 左節點 右節點 根節點 下面寫了乙個遍歷的demo public class binarytree node current root n...
二叉樹的遍歷規則(前序遍歷 後序遍歷 中序遍歷)
樹的遍歷順序大體分為三種 前序遍歷 先根遍歷 先序遍歷 中序遍歷 中根遍歷 後序遍歷 後根遍歷 如圖所示二叉樹 前序遍歷 前序遍歷可以記為根左右,若二叉樹為空,則結束返回。前序遍歷的規則 1 訪問根節點 2 前序遍歷左子樹 3 前序遍歷右子樹 這裡需要注意 在完成第2,3步的時候,也是要按照前序遍歷...