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中replace方法实例分析
Aug 20 Python
python用reduce和map把字符串转为数字的方法
Dec 19 Python
Python实现自动登录百度空间的方法
Jun 10 Python
Python如何通过subprocess调用adb命令详解
Aug 27 Python
python实现矩阵打印
Mar 02 Python
python如何获取列表中每个元素的下标位置
Jul 01 Python
python数据处理之如何选取csv文件中某几行的数据
Sep 02 Python
用python介绍4种常用的单链表翻转的方法小结
Feb 24 Python
Python 私有属性和私有方法应用场景分析
Jun 19 Python
Sublime Text3最新激活注册码分享适用2020最新版 亲测可用
Nov 12 Python
Django数据模型中on_delete使用详解
Nov 30 Python
如何用python识别滑块验证码中的缺口
Apr 01 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下图片文字混合水印与缩略图实现代码
2009/12/11 PHP
Apache连接PHP后无法启动问题解决思路
2015/06/18 PHP
实现php删除链表中重复的结点
2018/09/27 PHP
JavaScript高级程序设计 扩展--关于动态原型
2010/11/09 Javascript
JS实现向表格行添加新单元格的方法
2015/03/30 Javascript
javascript实现简单的html5视频播放器
2015/05/06 Javascript
js实现超简单的展开、折叠目录代码
2015/08/28 Javascript
Jquery 垂直多级手风琴菜单附源码下载
2015/11/17 Javascript
jQuery插件FusionCharts实现的2D柱状图效果示例【附demo源码下载】
2017/03/06 Javascript
jQuery EasyUI开发技巧总结
2017/09/26 jQuery
vue.js 中使用(...)运算符报错的解决方法
2018/08/09 Javascript
Vue中div contenteditable 的光标定位方法
2018/08/25 Javascript
微信小程序自定义键盘 内部虚拟支付
2018/12/20 Javascript
怎样在vue项目下添加ESLint的方法
2019/05/16 Javascript
微信小程序JS加载esmap地图的实例详解
2019/09/04 Javascript
微信小程序仿抖音短视频切换效果的实例代码
2020/06/24 Javascript
js简单粗暴的发布订阅示例代码
2021/01/23 Javascript
[38:51]2014 DOTA2国际邀请赛中国区预选赛 Orenda VS LGD-CDEC
2014/05/22 DOTA
[36:33]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.29
2020/12/02 DOTA
Python的字典和列表的使用中一些需要注意的地方
2015/04/24 Python
python得到一个excel的全部sheet标签值方法
2018/12/10 Python
Python 实现OpenCV格式和PIL.Image格式互转
2020/01/09 Python
Django实现前台上传并显示图片功能
2020/05/29 Python
Python实现计算图像RGB均值方式
2020/06/04 Python
PUMA官方商城:世界领先的运动品牌之一
2016/11/16 全球购物
进程的查看和调度分别使用什么命令
2013/12/14 面试题
网络公司美工设计工作个人的自我评价
2013/11/03 职场文书
我的网上商城创业计划书
2013/12/26 职场文书
2014年迎新年联欢会活动策划方案
2014/02/26 职场文书
私营公司诉讼代理委托书范本
2014/09/13 职场文书
违反交通安全法检讨书
2014/10/24 职场文书
高中生打架检讨书1000字
2015/02/17 职场文书
学生会主席任命书
2015/09/21 职场文书
读《推着妈妈去旅行》有感1500字
2019/10/15 职场文书
解决MySQL存储时间出现不一致的问题
2021/04/28 MySQL
浅谈JavaScript浅拷贝和深拷贝
2021/11/07 Javascript