簡單二叉樹遍歷,可分爲:先序,中序,後序。3d
在此分別總結先序,中序,後序的結點輸出順序。blog
先序: 1.訪問根結點ci
2.訪問左子樹二叉樹
3.訪問右子樹遍歷
先序較簡單,不予以即系解釋。im
中序:1.訪問左子樹總結
2.訪問根結點img
3.訪問右子樹co
原則:訪問左子樹。【先訪問左子樹中的左子樹,再訪問左子樹中的右子樹。】直到訪問到葉子結點後輸出。ps
輸出根。
訪問右子樹。【先訪問右子樹中的左子樹,再訪問右子樹中的右子樹。】直到訪問到葉子結點後輸出。
具體步驟以下:
A做爲根。從A開始,先訪問A的左子樹。即。
在看B的左子樹,D。則輸出D。B無左子樹。訪問完B的左子樹。而後訪問B。輸出B。再看B的右子樹。F有左子樹E,則輸出E。返回輸出F。A的左子樹所有輸出完,再返回A,輸出A。
同理,看A的右子樹。。輸出順序爲G,H,C,I。
因此,中序遍歷輸出的結果爲:(D B E F)A(G H C I).
後序:1.訪問左子樹
2.訪問右子樹
3.訪問根
原則:訪問左子樹。【先訪問左子樹中的左子樹,再訪問左子樹中的右子樹】。直到訪問到葉子結點後輸出。
訪問右子樹。【先訪問右子樹中的左子樹,再訪問右子樹中的右子樹】。直到訪問到葉子結點後輸出。
再返回訪問根,並輸出。
具體步驟:
先訪問A的左子樹。再訪問左子樹中的左子樹。【即:A的左子樹爲B,再訪問B的左子樹D。D沒有左右子樹,輸出D。】,而後訪問左子樹中的右子樹。【即:訪問B的右子樹F,F還有左子樹,再訪問F的左子樹E,E沒有左右子樹。輸出E。再輸出F,再輸出B。】。
而後訪問A的右子樹。再訪問右子樹中的左子樹。【即:A的右子樹爲C,再訪問C的左子樹G。G還有右子樹H,輸出H。再輸出G,再輸出G】,而後訪問右子樹中的右子樹。【即:訪問C的右子樹I,I沒有左右子樹,輸出I。在輸出C。再輸出A。】。
因此,後序遍歷輸出結果爲:(D E F B)(H G I C)A
本節課時網頁連接:http://mooc.study.163.com/learn/ZJU-1000033001?tid=1000044001#/learn/content?type=detail&id=1000112008&cid=1000102047