1. 程式人生 > >二叉樹的遍歷【 詳細講解 】

二叉樹的遍歷【 詳細講解 】

二叉樹的遍歷

一共有4種遍歷

先看圖,對於這個圖進行4種遍歷的講解

 

1、         先序遍歷

定義:若二叉樹為空,則空操作;否則

(1)訪問根節點(2)先序遍歷左子樹(3)先序遍歷右子樹

根據定義我需要解釋一下,定義很簡單,其實定義是對於每一

子樹而言的,我們先遍歷A然後B,這時候我們不能遍歷C結點,因為B結點是它下面子樹的根節點,把B看成根節點進行訪問,B->D,下面我們當然是把D結點看成根節點,不能訪問E結點,需要訪問H,再把H結點看成根節點,因為下面為空,那麼就訪問I 結點->E,把E結點再次看成根節點進行定義的方式的訪問->J,其實它的本質從大家到小家,從小家再到小小家一直這樣訪問下去

訪問的順序:A B D H I E J C F K G

2、         中序遍歷

定義:若二叉樹為空,則空操作;否則

(1)中序遍歷的左子樹(2)訪問根節點(3)中序訪問的右子樹

還是那樣的思想,把每次訪問看成一個小家,進行訪問:

我們需要先訪問左節點,先找到根節點A->B,把B看成根節點->D

,把D看成根節點->H,這時候我們就找到第一個左節點,那就首先訪問H根據定義來->D->I,那下面訪問哪一個,我們已經訪問完了已D為根節點的小家,D又是上面大家的左節點,那就需要訪問大家的根節點B,然後訪問E,其實不應該是E,應為已E為根節點的小家,左節點為空,那就下一步為結點E,然後J,……

訪問的順序:H D I B E J A F K C G

3、         後序遍歷

定義:定義:若二叉樹為空,則空操作;否則

(1)後序遍歷的左子樹(2)後序遍歷的右子樹(3)訪問根節點

不在詳細解釋了,按照前面的思想,本質就是,大家找小家,小家找小小家……

訪問順序: H I D J E B K F G C A

4、         層序遍歷

不用多說大家都會吧

訪問順序:A B C D E F G H I J K