python数据结构之二叉树的建立实例


Posted in Python onApril 29, 2014

先建立二叉树节点,有一个data数据域,left,right 两个指针域

# -*- coding: utf - 8 - *-                 
class TreeNode(object):
    def __init__(self, left=0, right=0, data=0):
        self.left = left
        self.right = right
        self.data = data
class BTree(object):    def __init__(self, root=0):
        self.root = root

手动建立二叉树

node1 = TreeNode(data=1)
node2 = TreeNode(node1, 0, 2)
node3 = TreeNode(data=3)
node4 = TreeNode(data=4)
node5 = TreeNode(node3, node4, 5)
node6 = TreeNode(node2, node5, 6)
node7 = TreeNode(node6, 0, 7)
node8 = TreeNode(data=8)
root = TreeNode(node7, node8, 'root')
bt = BTree(root)

然后会生成下面的二叉树
# 生成的二叉树# ------------------------
#          root
#       7        8
#     6
#   2   5
# 1    3 4
#
# -------------------------

除了 手动一个个的制定 node 节点,还可以创建一个 create 方法,接受用户输入添加二叉树节点。。。使用前续方式添加 ,代码如下:

# -*- coding: utf - 8 - *-           
class TreeNode(object):
    def __init__(self, left=0, right=0, data=0):
        self.left = left
        self.right = right
        self.data = data
           
class BTree(object):
    def __init__(self, root=0):
        self.root = root
    def is_empty(self):
        if self.root is 0:
            return True
        else:
            return False
    def create(self):
        temp = input('enter a value:')
        if temp is '#':
            return 0
        treenode = TreeNode(data=temp)
        if self.root is 0:
            self.root = treenode
        treenode.left = self.create()
        treenode.right = self.create()

使用create创建二叉树

#运行文件 在交互解释器下面运行bt = BTree()
bt.create()
enter a value:9
enter a value:7
enter a value:6
enter a value:2
enter a value:1
enter a value:'#'
enter a value:'#'
enter a value:'#'
enter a value:5
enter a value:3
enter a value:'#'
enter a value:'#'
enter a value:4
enter a value:'#'
enter a value:'#'
enter a value:'#'
enter a value:8
enter a value:'#'
enter a value:'#'

通过 create 也可以得到同样的效果

Python 相关文章推荐
用于统计项目中代码总行数的Python脚本分享
Apr 21 Python
python对数组进行反转的方法
May 20 Python
python计算文本文件行数的方法
Jul 06 Python
分享一下Python 开发者节省时间的10个方法
Oct 02 Python
python正则分析nginx的访问日志
Jan 17 Python
Python决策树分类算法学习
Dec 22 Python
一个Python最简单的接口自动化框架
Jan 02 Python
Python基于生成器迭代实现的八皇后问题示例
May 23 Python
mac安装pytorch及系统的numpy更新方法
Jul 26 Python
用django设置session过期时间的方法解析
Aug 05 Python
Python编写带选项的命令行程序方法
Aug 13 Python
基于python图像处理API的使用示例
Apr 03 Python
python数据结构树和二叉树简介
Apr 29 #Python
Python的ORM框架SQLAlchemy入门教程
Apr 28 #Python
Python中实现远程调用(RPC、RMI)简单例子
Apr 28 #Python
Python的ORM框架SQLObject入门实例
Apr 28 #Python
django自定义Field实现一个字段存储以逗号分隔的字符串
Apr 27 #Python
python监控网卡流量并使用graphite绘图的示例
Apr 27 #Python
python抓取网页图片示例(python爬虫)
Apr 27 #Python
You might like
PHP采用curl模仿用户登陆新浪微博发微博的方法
2014/11/07 PHP
js保存当前路径(cookies记录)
2010/12/14 Javascript
3款实用的在线JS代码工具(国外)
2012/03/15 Javascript
自己写的兼容ie和ff的在线文本编辑器类似ewebeditor
2012/12/12 Javascript
jquery拖动插件(jquery.drag)使用介绍
2013/06/18 Javascript
javascript生成随机数方法汇总
2015/11/12 Javascript
Js遍历键值对形式对象或Map形式的方法
2016/08/08 Javascript
BootStrap 动态添加验证项和取消验证项的实现方法
2016/09/28 Javascript
老生常谈JavaScript中的this关键字
2016/10/01 Javascript
bootstrap-datetimepicker实现只显示到日期的方法
2016/11/25 Javascript
jquery 键盘事件的使用方法详解
2017/09/13 jQuery
JavaScript代码简化技巧实例解析
2020/09/09 Javascript
小程序自定义圆形进度条
2020/11/17 Javascript
[02:32]DOTA2英雄基础教程 祸乱之源
2013/12/23 DOTA
[00:52]玛尔斯技能全介绍
2019/03/06 DOTA
[01:09:23]KG vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python编程语言的35个与众不同之处(语言特征和使用技巧)
2014/07/07 Python
Python调用C++程序的方法详解
2017/01/24 Python
关于Python中Inf与Nan的判断问题详解
2017/02/08 Python
基于python 二维数组及画图的实例详解
2018/04/03 Python
django中forms组件的使用与注意
2019/07/08 Python
python单线程下实现多个socket并发过程详解
2019/07/27 Python
opencv3/C++ 平面对象识别&透视变换方式
2019/12/11 Python
Python3和PyCharm安装与环境配置【图文教程】
2020/02/14 Python
解决Django提交表单报错:CSRF token missing or incorrect的问题
2020/03/13 Python
美国男士内衣品牌:Tommy John
2017/12/22 全球购物
美津浓美国官网:Mizuno美国
2018/08/07 全球购物
Hello Molly美国:女性时尚在线
2019/08/26 全球购物
美国购买舞会礼服网站:Couture Candy
2019/12/29 全球购物
C/C++有关内存的思考题
2015/12/04 面试题
房地产销售计划书
2014/01/10 职场文书
股东授权委托书
2014/10/15 职场文书
2014年前台个人工作总结
2014/11/14 职场文书
2014年环保工作总结
2014/11/26 职场文书
红领巾广播站广播稿
2015/08/19 职场文书
公司员工违法违章行为检讨书
2019/06/24 职场文书