二叉樹遍歷根據節點順序來分有三種方式:先序遍歷、中序遍歷、後序遍歷。
以上圖二叉樹為例,a是根節點,b是左節點,c是右節點。先序遍歷:abc(從根節點開始訪問,然後從左節點到右節點),中序遍歷:bac(從左節點開始,然後訪問根節點,最後訪問右節點),後序遍歷:bca(從左節點開始然後優先訪問同級的右節點最後訪問根節點)
接下來再來乙個稍微複雜點的二叉樹
先序遍歷:abcdefghi
中序遍歷:bdcaeggif
後序遍歷:dcbhigfea
以中序遍歷為例作詳細介紹
參考部落格:
二叉樹的三種遍歷(先序,中序,後序)
二叉樹的遍歷 1 遞迴形式的遍歷 1.1先序遍歷 先訪問父親節點,在訪問左葉子節點,在訪問右葉子節點,如下 void preorder treenode root 1.2中序遍歷 先訪問左葉子節點,在訪問父親節點,在訪問右孩子節點 void middleorder treenode root 1.3...
二叉樹先序 中序 後序遍歷
題目 用遞迴和非遞迴方式,分別按照二叉樹先序 中序和後序列印所有的節點。我們約定 先序遍歷順序為根 左 右 中序遍歷順序為左 根 右 後序遍歷順序為左 右 根。遞迴實現 遞迴遍歷二叉樹 先序 public void preorderrecur node head system.out.println...
二叉樹先序遍歷 中序遍歷 後序遍歷
輸入二叉樹的先序遍歷序列和中序遍歷序列,輸出該二叉樹的後序遍歷序列。非建二叉樹版本 include includeusing namespace std string preord,inord void rebuild int preleft,int preright,int inleft,int ...