Python實現二叉樹的三種深度遍歷方法!

千鋒武漢發表於2021-04-29

  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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章