Python實現二叉樹的三種深度遍歷方法!
python程式碼實現了二叉樹,這次將會實現二叉樹的幾種遍歷方法,來更好的解析二叉樹的結構特點。分別是一種廣度遍歷,和三種深度遍歷方法:先序遍歷,中序遍歷,後序遍歷。下面是程式碼實現:
1、先序遍歷
遍歷順序:根==》左子樹==》右子樹,實現程式碼:
def pre(self,node):#定義一個先序遍歷的方法
if node is None:#判斷節點是否為空,為空則返回
return
print(node.elem,end=' ')#列印遍歷的節點
self.pre(node.left)#遞迴左子樹
self.pre(node.right)#遞迴右子樹
2、中序遍歷
遍歷順序:左子樹==》根 ==》右子樹,實現程式碼:
def md(self,node):#定義一箇中序遍歷的方法
if node is None: #判斷節點是否為空,為空則返回
return
self.md(node.left) #遞迴左子樹
print(node.elem,end=' ') #列印遍歷的節點
self.md(node.right) #遞迴右子樹
3、後序遍歷
遍歷順序:左子樹==》右子樹==》根,實現程式碼:
def bhd(self,node):#定義一個後序遍歷的方法
if node is None:#判斷節點是否為空,為空返回
return
self.bhd(node.left)#遞迴左子樹
self.bhd(node.right)#遞迴右子樹
print(node.elem,end=' ')#列印遍歷的節點
列印結果:
if __name__ == "__main__":
tree=Tree()
tree.add(0)
tree.add(1)
tree.add(2)
tree.add(3)
tree.add(4)
tree.add(5)
tree.add(6)
tree.add(7)
tree.add(8)
tree.pre(tree.root)#列印先序遍歷的值
print(' ')
tree.md(tree.root)#列印中序遍歷的值
print(' ')
tree.bhd(tree.root)#列印後序遍歷的值
print(' ')
#輸出:
# 0 1 3 7 8 4 2 5 6 先序遍歷的值
# 7 3 8 1 4 0 5 2 6 中序遍歷的值
# 7 8 3 4 1 5 6 2 0 後序遍歷的值
總結二叉樹的三種深度遍歷的實現主要是利用了遞迴,利用不同的遍歷順序來改變遞迴的順序和節點列印的順序來實現,利用這一特點就可以用python快速的實現三種遍歷方法了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31548651/viewspace-2770436/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- python 實現二叉樹的深度&&廣度優先遍歷Python二叉樹
- 二叉樹(BST)中序遍歷的三種方法二叉樹
- 二叉樹的遍歷實現二叉樹
- Python二叉樹的三種深度Python二叉樹
- 二叉樹遍歷方法二叉樹
- 二叉樹四種遍歷二叉樹
- python實現二叉樹及其七種遍歷方式(遞迴+非遞迴)Python二叉樹遞迴
- 二叉樹的前序、中序、後序三種遍歷二叉樹
- 一文弄懂二叉樹的三種遍歷方式二叉樹
- 二叉樹的深度、寬度遍歷及平衡樹二叉樹
- 什麼是遍歷二叉樹,JavaScript實現二叉樹的遍歷(遞迴,非遞迴)二叉樹JavaScript遞迴
- 二叉樹遍歷方法總結二叉樹
- 刷題系列 - Python實現二叉樹按層級遍歷Python二叉樹
- Python教程講解二叉樹的三種深度Python二叉樹
- 二叉樹的建立與遍歷(遞迴實現)二叉樹遞迴
- 二叉樹的所有遍歷非遞迴實現二叉樹遞迴
- 二叉樹的遍歷二叉樹
- 二叉樹遍歷二叉樹
- 二叉樹---遍歷二叉樹
- 面試中很值得聊的二叉樹遍歷方法——Morris遍歷面試二叉樹
- 144.二叉樹的前序遍歷145.二叉樹的後序遍歷 94.二叉樹的中序遍歷二叉樹
- 144. 二叉樹的前序遍歷(java實現)--LeetCode二叉樹JavaLeetCode
- 遍歷二叉樹的迭代和遞迴方法二叉樹遞迴
- 完全二叉樹的遍歷二叉樹
- 刷題系列 - Python用非遞迴實現二叉樹前序遍歷Python遞迴二叉樹
- 玩轉二叉樹(樹的遍歷)二叉樹
- java實現二叉樹的Node節點定義手撕8種遍歷(一遍過)Java二叉樹
- 二叉樹遍歷 -- JAVA二叉樹Java
- C++樹——遍歷二叉樹C++二叉樹
- 根據二叉樹的前序遍歷和中序遍歷輸出二叉樹;二叉樹
- 刷題系列 - Python用非遞迴實現二叉樹後續遍歷Python遞迴二叉樹
- 刷題系列 - Python用非遞迴實現二叉樹中序遍歷Python遞迴二叉樹
- 二叉樹的四種遍歷方法:先序,中序,後序,層序二叉樹
- 二叉樹的遍歷筆記二叉樹筆記
- 二叉樹的層序遍歷二叉樹
- 二叉樹的按層遍歷二叉樹
- 二叉樹遍歷順序與方法小結二叉樹
- 【LeetCode-二叉樹】二叉樹前序遍歷LeetCode二叉樹