Python 自定义二叉树结构

复制代码
class BinaryTree:
    def __init__(self,value):
        self._left=None
        self._right=None
        self._data=value
 
    def insertLeftChild(self,value):        #创建左子树
        if self._left:
            print('left child tree already exists.')
        else:
            self._left=BinaryTree(value)
            return self._left
 
    def insertRightChild(self,value):          #创建右子树
        if self._right:
            print('right child tree already exists.')
        else:
            self._right=BinaryTree(value)
            return self._right
 
    def show(self):
        print(self._data)
 
    def preOrder(self):       #前序遍历(根左右)
        print(self._data)
        if self._left:
            self._left.preOrder()
        if self._right:
            self._right.preOrder()
 
    def postOrder(self):               #后序遍历(左右根)
        if self._left:
            self._left.postOrder()
        if self._right:
            self._right.postOrder()
        print(self._data)
 
    def inOrder(self):             #中序遍历(左根右)
        if self._left:
            self._left.inOrder()
        print(self._data)
        if self._right:
            self._right.inOrder()
 
if __name__=='__main__':
    print('Please use me as a module.')
复制代码

 

posted on   缺陷催生进化,完美预示终结  阅读(499)  评论(0编辑  收藏  举报

编辑推荐:
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
· 分享一个我遇到过的“量子力学”级别的BUG。
· Linux系列:如何调试 malloc 的底层源码
阅读排行:
· 对象命名为何需要避免'-er'和'-or'后缀
· JDK 24 发布,新特性解读!
· C# 中比较实用的关键字,基础高频面试题!
· .NET 10 Preview 2 增强了 Blazor 和.NET MAUI
· SQL Server如何跟踪自动统计信息更新?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

点击右上角即可分享
微信分享提示