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获取当前时间对应unix时间戳的方法
May 15 Python
Python IDLE清空窗口的实例
Jun 25 Python
对python使用telnet实现弱密码登录的方法详解
Jan 26 Python
Python----数据预处理代码实例
Mar 20 Python
Python生成MD5值的两种方法实例分析
Apr 26 Python
余弦相似性计算及python代码实现过程解析
Sep 18 Python
Python计算公交发车时间的完整代码
Feb 12 Python
使用Django搭建网站实现商品分页功能
May 22 Python
keras模型保存为tensorflow的二进制模型方式
May 25 Python
Python判断远程服务器上Excel文件是否被人打开的方法
Jul 13 Python
Python 按比例获取样本数据或执行任务的实现代码
Dec 03 Python
关于的python五子棋的算法
May 02 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.MVC的模板标签系统(二)
2006/09/05 PHP
phpwind中的数据库操作类
2007/01/02 PHP
PHP中将数组转成XML格式的实现代码
2011/08/08 PHP
Zend Framework中的简单工厂模式 图文
2012/07/10 PHP
php selectradio和checkbox默认选择的实现方法详解
2013/06/29 PHP
PHP使用SWOOLE扩展实现定时同步 MySQL 数据
2017/04/09 PHP
PHP实现微信对账单处理
2018/10/01 PHP
Zero Clipboard js+swf实现的复制功能使用方法
2010/03/07 Javascript
JS关键字球状旋转效果的实例代码
2013/11/29 Javascript
JS delegate与live浅析
2013/12/21 Javascript
JavaScript判断数字是否为质数的方法汇总
2016/06/02 Javascript
javascript验证内容为数字以及长度为10的简单实例
2016/08/20 Javascript
快速实现JS图片懒加载(可视区域加载)示例代码
2017/01/04 Javascript
jQuery实现监听下拉框选中内容发生改变操作示例
2018/07/13 jQuery
node省市区三级数据性能测评实例分析
2019/11/06 Javascript
uniapp 仿微信的右边下拉选择弹出框的实现代码
2020/07/12 Javascript
Python os模块介绍
2014/11/30 Python
python+selenium+autoit实现文件上传功能
2017/08/23 Python
如何使用Python的Requests包实现模拟登陆
2018/04/27 Python
Linux CentOS Python开发环境搭建教程
2018/11/28 Python
python_opencv用线段画封闭矩形的实例
2018/12/05 Python
基于Python对数据shape的常见操作详解
2018/12/25 Python
Python3.5内置模块之random模块用法实例分析
2019/04/26 Python
django+tornado实现实时查看远程日志的方法
2019/08/12 Python
tensorflow 报错unitialized value的解决方法
2020/02/06 Python
python获取栅格点和面值的实现
2020/03/10 Python
pyMySQL SQL语句传参问题,单个参数或多个参数说明
2020/06/06 Python
Python虚拟环境库virtualenvwrapper安装及使用
2020/06/17 Python
python获取整个网页源码的方法
2020/08/03 Python
Django自带用户认证系统使用方法解析
2020/11/12 Python
美国杰西潘尼官网:JCPenney
2019/06/12 全球购物
美国排名第一的泳池用品直接来源:In The Swim
2019/09/23 全球购物
课堂打架检讨书200字
2014/11/21 职场文书
婚礼上证婚人致辞
2015/07/28 职场文书
CSS3实现模糊背景的三种效果示例
2021/03/30 HTML / CSS
Spring JPA 增加字段执行异常问题及解决
2022/06/10 Java/Android