1. 程式人生 > >二叉樹類及相關操作

二叉樹類及相關操作

class BinTree():
    def __init__(self,root=None,left=None,right=None):
        self._root=root # 初始化 空樹
        self._left = left
        self._right=right
        
    def is_empty(self):
        return self._root == None

    def set_root(self,ele):# 設定樹根
        self._root =ele

    def left(self): # 檢視左兒子
        return self._left

    def set_left(self,left): # 設定左兒子
        self._left=left

    def right(self): 
        return self._right

    def set_right(self,right): 
        self._right=right

    def travel(self,bt): # 遍歷函式
        if bt is None:
            return 0
        else:
            print(bt._root)
            self.travel(bt._left)
            self.travel(bt._right)

def main():
    a=BinTree()
    a.set_root('A')
    a.set_left(BinTree('B'))
    a.set_right(BinTree(3))
    a.travel(a)

# 總結:可以看出,樹的類只能是定義 最小的巢狀單元,真正實行起來,必須得巢狀表示,
#但是例項可以是最小類單元組成的複雜結構,並且可以進行修改,遍歷的操作