1. 程式人生 > >二叉樹的遍歷

二叉樹的遍歷

數據結構 樹 樹的三種遍歷

對於二叉樹的遍歷基本上分為三種。前序遍歷,中序遍歷,後序遍歷。

先講第一種,前序遍歷。前序遍歷就是說,第一步,先訪問根結點,然後再訪問左子樹,最後是訪問右子樹。

技術分享

就拿圖中的樹來講吧。先序遍歷,先訪問根節點。於是,第一步先訪問結點A。接著訪問左子樹,通過觀察發現,左子樹的根結點是B,所以第二個訪問B。接著,根據,先訪問根節點再訪問左子樹的原則,那麽接下來訪問B的左子樹,觀察之後發現,B的左子樹的仍然是棵樹,並且,這棵樹的根節點就是D,所以,第三個訪問的結點就是D。D的左子樹就是F,因為,F的左右都為空,所以,接著訪問D的右子樹,D的右子樹仍然是一棵樹,並且,G為樹的根,G的左子樹是H,所以,先訪問H,再訪問G的右子樹I。這樣一來,B的左子樹就全部訪問完畢,然後就是B的右子樹E,這樣,A的左子樹就全部訪問完畢,最後就是訪問A的右子樹C。因為C沒有左孩子和右孩子,所以,該樹訪問完畢。整體訪問流程如下:

A->B->D->F->G->H->I->E->C

第二種遍歷,中序遍歷。什麽是中序遍歷呢?就是,先訪問左子樹,再訪問跟結點,最後訪問右子樹。根據這一原則,那麽上圖中,中序遍歷後,如下:

F->D->H->G->I->B->E->A->C

第三中遍歷。後序遍歷。就是指,先訪問左子樹,再訪問右子樹,最後訪問根節點。根據這一原則,那麽上圖,經過後序遍歷後,如下:

F->H->I->G->D->E->B->C->A

所謂樹的先序、中序,後序遍歷,其實就是根據根節點訪問的位置來定的。先訪問根節點就是先序遍歷,第二個訪問根節點就是中序遍歷,最後訪問根節點就是後序遍歷。

本文出自 “梵高說我腦子有病” 博客,請務必保留此出處http://chen0547.blog.51cto.com/12489941/1970068

二叉樹的遍歷