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局部赋值的规则
Mar 07 Python
跟老齐学Python之print详解
Sep 28 Python
Python守护进程(daemon)代码实例
Mar 06 Python
Python编程实现删除VC临时文件及Debug目录的方法
Mar 22 Python
Python双精度浮点数运算并分行显示操作示例
Jul 21 Python
Python2实现的LED大数字显示效果示例
Sep 04 Python
Pandas 按索引合并数据集的方法
Nov 15 Python
pyinstaller打包多个py文件和去除cmd黑框的方法
Jun 21 Python
python读写配置文件操作示例
Jul 03 Python
Python图像处理库PIL的ImageFilter模块使用介绍
Feb 26 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
Mar 24 Python
Python利用Faiss库实现ANN近邻搜索的方法详解
Aug 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实现求相对时间函数
2015/06/15 PHP
基于PHP实现短信验证码接口(容联运通讯)
2016/09/06 PHP
prototype1.4中文手册
2006/09/22 Javascript
优化javascript的执行效率一些方法总结
2013/12/25 Javascript
JavaScript实现跨浏览器的添加及删除事件绑定函数实例
2015/08/04 Javascript
基于jQuery实现返回顶部实例代码
2016/01/01 Javascript
javascript显示倒计时控制按钮的简单实现
2016/06/07 Javascript
AngularJS 表达式详细讲解及实例代码
2016/07/26 Javascript
JavaScript轮播图简单制作方法
2017/02/20 Javascript
[js高手之路]单例模式实现模态框的示例
2017/09/01 Javascript
微信小程序商品详情页规格属性选择示例代码
2017/10/30 Javascript
React实现全局组件的Toast轻提示效果
2018/09/21 Javascript
node和vue实现商城用户地址模块
2018/12/05 Javascript
详解Vue This$Store总结
2018/12/17 Javascript
详解单页面路由工程使用微信分享及二次分享解决方案
2019/02/22 Javascript
浅谈鸿蒙 JavaScript GUI 技术栈
2020/09/17 Javascript
JS实现手风琴特效
2020/11/08 Javascript
vue 数据遍历筛选 过滤 排序的应用操作
2020/11/17 Javascript
[00:42]《辉夜杯》—职业组预选赛12月3日15点 正式打响
2015/12/03 DOTA
Linux RedHat下安装Python2.7开发环境
2017/05/20 Python
pandas pivot_table() 按日期分多列数据的方法
2018/11/16 Python
使用Python实现图像标记点的坐标输出功能
2019/08/14 Python
python3中使用__slots__限定实例属性操作分析
2020/02/14 Python
Python使用pyyaml模块处理yaml数据
2020/04/14 Python
详解Python 最短匹配模式
2020/07/29 Python
使用 css3 transform 属性来变换背景图的方法
2019/05/07 HTML / CSS
HTML5视频播放插件 video.js介绍
2018/09/29 HTML / CSS
精彩的推荐信范文
2013/11/26 职场文书
考博专家推荐信模板
2013/12/02 职场文书
本科生求职信
2014/06/17 职场文书
公司收款委托书范本
2014/09/20 职场文书
2014年幼儿园学期工作总结
2014/12/05 职场文书
2015年乡镇食品安全工作总结
2015/10/22 职场文书
2016年度继续教育学习心得体会
2016/01/19 职场文书
Python类方法总结讲解
2021/07/26 Python
SQL IDENTITY_INSERT作用案例详解
2021/08/23 MySQL