python创建中序二叉树并按照中序print
来源:互联网 发布:人死后会去哪里知乎 编辑:程序博客网 时间:2024/06/04 00:23
使用python创建二叉树
实现:
- 如果二叉树为空,则创建二叉树实例
- 如果当前结点为空,则创建结点。否则判断:
- 如果输入值小于当前结点值,则添加到左结点
- 如果输入值大于或等于当前值,则添加到右结点
代码
#!/usr/bin/env python3# -*- coding: utf-8 -*-class Node(object): """docstring for Node""" def __init__(self, arg): super(Node, self).__init__() self.val = arg self.left = None self.right = Noneclass Tree(object): """docstring for Tree""" def __init__(self): super(Tree, self).__init__() self.root = None def init_tree(self, val, node=None): if node is None: node = self.root if self.root is None: self.root = Node(val) else: if val < node.val: if node.left is not None: self.init_tree(val, node.left) else: node.left = Node(val) else: if node.right is not None: self.init_tree(val, node.right) else: node.right = Node(val) def print_tree(self): """docstring for print_tree""" if self.root is not None: self.print_tree_node(self.root) else: print("it's an empty tree") def print_tree_node(self, node): """docstring for print_tree""" if node is not None: self.print_tree_node(node.left) print(node.val) self.print_tree_node(node.right)if __name__ == '__main__': tree = Tree() # print(tree) tree.init_tree(3) tree.init_tree(4) tree.init_tree(7) tree.init_tree(5) tree.init_tree(1) tree.print_tree()
运行结果
参考:
http://stackoverflow.com/questions/2598437/how-to-implement-a-binary-tree-in-python
0 0
- python创建中序二叉树并按照中序print
- 创建二叉树,并实现中序遍历
- 已知二叉树先序遍历,中序遍历创建二叉树并输出后序遍历
- python中创建和遍历二叉树
- 创建二叉树,并对其进行 先序、中序、后序遍历
- JAVA创建二叉树将数组中的数依次存入二叉树,并分别用先序,后序,中序遍历;
- 按照前序遍历和中序遍历构建二叉树
- 以二叉链表的方式创建一棵二叉树,并以非递归算法中序输出;计算二叉树的繁茂度,并判断二叉树是否为完全二叉树
- 二叉树根据先序,中序创建二叉树,后序,中序创建二叉树,层次序列,中序遍历创建二叉树。
- 创建二叉树,并先序遍历
- 先序顺序输入结点值创建二叉树,并按先序,中序和后序遍历输出
- Python 3 中print 函数
- python中print不换行
- 建立中序线索二叉树并遍历
- 建立排序二叉树并中序遍历
- 中序线索化二叉树并遍历
- 按照层次遍历并打印二叉树
- 数据库里取出来结果,按照树来排列。 其实就是数据结构中二叉树的先序遍历
- 立项前的成本算还是不算?
- React Native学习笔记-1:JSC profiler is not supported.
- linux运维经验~~基础篇非常适合入门
- jsp继续学习(request对象)
- iOS Facebook 最新最简单快速分享方法
- python创建中序二叉树并按照中序print
- 登陆功能:ajax的简单应用
- 优秀程序员的七大特征
- TableLayout详解(实际开发的横线、字体对齐)
- 深入理解java中的package关键字 http://blog.csdn.net/lindir/article/details/8067732
- Android studio中导入github项目详解
- Intent
- 关于org-page的坑
- 【iOS学习笔记 16-2-22】iOS多线程知识总结