Python入門篇-數據結構樹(tree)的遍歷
作者:尹正傑
版權聲明:原創作品,謝絕轉載!否則將追究法律責任。
一.遍歷
迭代所有元素一遍。
二.樹的遍歷
對樹中所有元素不重復地訪問一遍,也稱作掃描。
三.廣度優先遍歷
層序遍歷:
(1)按照樹的層次,從第一層開始,自左向右遍歷元素
(2)遍歷序列如下圖所示,(ABCDEFGHI)
四.深度優先遍歷
設樹的根結點為D,左子樹為L,右子樹為R,且要求L一定在R之前,則有下面幾種遍歷方式:
前序遍歷,也叫先序遍歷、也叫先根遍歷,DLR
中序遍歷,也叫中根遍歷,LDR
后序遍歷,也叫后根遍歷,LRD
1>.前序遍歷DLR
從根結點開始,先左子樹后右子樹 每個子樹內部依然是先根結點,再左子樹后右子樹。遞歸遍歷 遍歷序列如下圖所示:(ABDGHCEIF)
2>.中序遍歷
從根結點的左子樹開始遍歷,然后是根結點,再右子樹
每個子樹內部,也是先左子樹,后根結點,再右子樹。遞歸遍歷
遍歷序列
左圖:GDHBAIECF
右圖:GDHBAEICF
3>.后序遍歷
先左子樹,后右子樹,再根結點
每個子樹內部依然是先左子樹,后右子樹,再根結點。遞歸遍歷
遍歷序列如下圖所示:(GHDBIEFCA)
五.遍歷序列
將樹中所有元素遍歷一遍后,得到的元素的序列。將層次結構轉換成了線性結構