Python实现一个二叉树类

来源:互联网 发布:完美刷机解网络锁 编辑:程序博客网 时间:2024/06/06 15:01

最近在学习Python,之前只是在写脚本,做一些数据处理的工作,今天开始看Python的面向对象,熟悉了语法之后,想实现一个二叉树类练练手。

以前写C++比较多,用Python写二叉树好不习惯,没有指针,没有引用!!!


所以我就遇到了一下几个问题:

1、该怎么把二叉树各个节点连起来?

2、怎么定义内部数据成员?

3、如何实例化左右孩子?


在网上也没找到比较简单比较通用的Python二叉树类实现,所以我花了点时间自己写一个。

class Tree:    def __init__(self, val = '#', left = None, right = None):        self.val = val        self.left = left        self.right = right    #前序构建二叉树    def FrontBuildTree(self):        temp = input('Please Input: ')        node = Tree(temp)        if(temp != '#'):            node.left = self.FrontBuildTree()            node.right = self.FrontBuildTree()        return node#因为没有引用也没有指针,所以就把新的节点给返回回去        #前序遍历二叉树    def VisitNode(self):        print(self.val)        if(self.val != '#'):            self.left.VisitNode()            self.right.VisitNode()if __name__ == '__main__':    root = Tree()    root = root.FrontBuildTree()    root.VisitNode()

有什么不对的地方,还请多指教!

0 0
原创粉丝点击