Python|二叉樹的簡單介紹

本文首發於微信公衆號:"算法與編程之美",歡迎關注,及時瞭解更多此係列文章。


問題描述

二叉樹是一種常見的數據結構類型,我們經常會遇見二叉樹類型的題目,但是我們很多人對二叉樹還是不是很清楚下面我們就來簡單介紹一下二叉樹。


解決方案

二叉樹是一種簡單的樹形結構,其每個節點的分支節點數有0,12個。如下圖T1,T2T3是三棵二叉樹。顯然二叉樹是一種遞歸的結構。

 不包含任何節點的二叉樹爲空樹,只有一個節點的二叉樹稱爲單點樹,一個節點的子節點的個數稱爲該節點的度。如果每個分支節點的度都爲2,則稱之爲滿二叉樹。如果一棵二叉樹,除最後一層外,其它層的節點都是滿的,而最後一層節點在最左邊連續排列,空位都在右邊,這樣的二叉樹叫做完全二叉樹。二叉樹有三種遍歷方式

前序遍歷:按根節點、左子樹、右子樹的順序遍歷。
中序遍歷:按左子樹、根節點、右子樹的順序遍歷。
後序遍歷:按左子樹、右子樹、根節點的順序遍歷。

遍歷二叉樹代碼示例:

class BinTNode:
 def __init__(self,dat,left=None,right=None):
 self.data=dat
 self.left=left
 self.right=right
 def preorder(t,proc):
    if t is None:
    return
    proc(t.data)
    preorder(t.left,proc)
    preorder(t.right,proc)


結語

二叉樹是一種特殊的樹型結構,它的特點是每個結點至多有兩棵子樹,且二叉樹的子樹有左右之分,其次序不能任意顛倒。




主編:王楠嵐

稿件來源:深度學習與文旅應用實驗室(DLETA)

本文分享自微信公衆號 - 算法與編程之美(algo_coding)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章