python 树形结构
来源:互联网 发布:视频文字特效制作软件 编辑:程序博客网 时间:2024/06/05 17:03
1. 使用dictionary 实现二叉排序树
python 代码:
#!/usr/bin/python# -*- coding: utf-8 -*-# python 二叉树def create_btree( e ): root = {"v":e[0], "left":None, "right":None} for i in e[1:-1]: insert(root, i) return rootdef insert(root, i): if i==root["v"]: return if i<root["v"]: if root["left"] != None: insert(root["left"], i) else: root["left"] = {"v":i, "left":None, "right":None} if i>root["v"]: if root["right"] != None: insert(root["right"], i) else: root["right"] = {"v":i, "left":None, "right":None}def pre_order(root): if root==None: return pre_order( root["left"] ) print( root["v"] ) pre_order( root["right"] )if __name__ == '__main__': l = [ 1, 3, 2, -1, 5, 8 ] pre_order( create_btree(l) )
result:
2. 使用类来实现二叉排序树
#!/usr/bin/python# -*- coding: utf-8 -*-# python 二叉树# 类Node class Node: def __init__( self, v = None ): self.v = v self.left = None self.right = None # 类TReeclass Tree: def __init__( self ): self.root = Node() def build(self, e ): for i in e: self.insert(self.root, i ) def insert(self,root,i): if root.v == None: root.v = i return if root.v == i: return if i < root.v : if root.left != None: self.insert(root.left, i) else: root.left = Node( i ) if i > root.v: if root.right != None: self.insert(root.right, i) else: root.right = Node( i ) def in_order(self): self.in_order_traval( self.root ) def in_order_traval(self, root): if None == root or None == root.v: return self.in_order_traval( root.left ) print( root.v ) self.in_order_traval( root.right )if __name__ == '__main__': l = [ 1, 3, 2, -1, 5, 8 ] tree = Tree() tree.build( l ) tree.in_order()
运行结果:
- python 树形结构
- 一行python实现树形结构
- Python树形打印目录结构
- Python显示目录的树形结构
- 树形结构
- 树形结构
- 树形结构
- 树形结构
- 树形结构
- 树形结构
- 树形结构
- 树形结构
- 树形结构
- 组织结构树形结构
- 树形dp+树形结构总结
- Python实现 Linux tree命令:用树形结构显示目录结构
- 自定义结构--一般树形结构
- 树形结构的实现
- UVA 10148 Advertisement 贴广告的艺术 贪心 区间选点
- 敏捷教练如何辅导发布计划的制定之统一思想
- js的onload事件及初始化按钮事件
- hdu2289 Cup
- 精益化运营:10款移动统计分析工具推荐
- python 树形结构
- protocol glossary
- hdu4670
- 对于this和$(this)的理解
- 敏捷教练如何辅导发布计划的制定之开展行动
- 第一章 ubuntu配置 一.基本配置
- 安卓翻译 Tasks and Back Stack (一)
- 下载旧的debian版本(jigdo下载)
- 软件错误、软件缺陷、软件故障、软件失效定义及关系