【Python】(十七)Python實現樹結構

本節我們將用Python實現樹結構中最簡單的二叉樹,并將在以后的章節中應用它。

二叉樹類

#二叉樹類
class BinaryTree(object):
    # 初始化,傳入根節點的值
    def __init__(self, root_value):
        self.root = root_value
        self.leftchild = None
        self.rightchild = None
    # 插入左子樹
    def insert_left(self, left_value):
        if self.leftchild == None :
            self.leftchild = BinaryTree(left_value)
        else:
            left_subtree = BinaryTree(left_value)
            left_subtree.leftchild = self.leftchild
            self.leftchild = left_subtree
    # 插入右子樹
    def insert_right(self, right_value):
        if self.rightchild == None :
            self.rightchild = BinaryTree(right_value)
        else:
            right_subtree = BinaryTree(right_value)
            right_subtree.rightchild = self.rightchild
            self.rightchild = rightchild
    # 設置根節點的值
    def set_root(self, root_value):
        self.root = root_value
    # 獲取根節點的值
    def get_root(self):
        return self.root
    # 獲取左子樹
    def get_leftchild(self):
        return self.leftchild
    # 獲取右子樹
    def get_rightchile(self):
        return self.rightchild

二叉樹的遍歷

# 前序遍歷二叉樹
def pre_traversal(tree):
    if tree != None:
        print(tree.root)
        pre_traversal(tree.leftchild)
        pre_traversal(tree.rightchild)
        
# 中序遍歷二叉樹
def in_traversal(tree):
    if tree != None:
        in_traversal(tree.leftchild)
        print(tree.root)
        in_traversal(tree.rightchild)
        
# 后序遍歷二叉樹
def post_traversal(tree):
    if tree != None:
        post_traversal(tree.leftchild)
        post_traversal(tree.rightchild)
        print(tree.root)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 基于樹實現的數據結構,具有兩個核心特征: 邏輯結構:數據元素之間具有層次關系; 數據運算:操作方法具有Log級的平...
    yhthu閱讀 4,315評論 1 5
  • 樹的概述 樹是一種非常常用的數據結構,樹與前面介紹的線性表,棧,隊列等線性結構不同,樹是一種非線性結構 1.樹的定...
    Jack921閱讀 4,489評論 1 31
  • 1.樹(Tree): 樹是 n(n>=0) 個結點的有限集。當 n=0 時稱為空樹。在任意一顆非空樹中:有且僅有一...
    ql2012jz閱讀 1,045評論 0 3
  • 這可能是我進入跑步圈的最後一文簡書一個習慣的養成需要21天。接下來的每一天我會依然如期的早睡早起跑步,但是可能不會...
    AD_Chen閱讀 284評論 0 1
  • 今天下雨,雖然下午睡了一會,臨走時又生出疲倦感,鼓了鼓氣,打了個旳去跳舞,算是給自己鼓勵。 今晚的基礎練習感覺不錯...
    31號力閱讀 178評論 0 0