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类定义的讲解
Nov 01 Python
python实现simhash算法实例
Apr 25 Python
跟老齐学Python之玩转字符串(2)更新篇
Sep 28 Python
python通过imaplib模块读取gmail里邮件的方法
May 08 Python
python编程开发之日期操作实例分析
Nov 13 Python
Python将list中的string批量转化成int/float的方法
Jun 26 Python
详解python项目实战:模拟登陆CSDN
Apr 04 Python
Python函数装饰器原理与用法详解
Aug 16 Python
python 简单的调用有道翻译
Nov 25 Python
在pycharm中使用pipenv创建虚拟环境和安装django的详细教程
Nov 30 Python
学会迭代器设计模式,帮你大幅提升python性能
Jan 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程序员编程注意事项
2008/04/10 PHP
PHP 获取客户端真实IP地址多种方法小结
2010/05/15 PHP
The specified CGI application misbehaved by not returning a complete set of HTTP headers
2011/03/31 PHP
php图片上传存储源码并且可以预览
2011/08/26 PHP
PHP临时文件的安全性分析
2014/07/04 PHP
thinkphp使用literal防止模板标签被解析的方法
2014/11/22 PHP
php实现ip白名单黑名单功能
2015/03/12 PHP
thinkphp3.2框架中where条件查询用法总结
2019/08/13 PHP
javascript removeChild 使用注意事项
2009/04/11 Javascript
jquery1.83 之前所有与异步列队相关的模块详细介绍
2012/11/13 Javascript
简易的投票系统以及js刷票思路和方法
2015/04/07 Javascript
三种Node.js写文件的方式
2016/03/08 Javascript
jQuery日程管理插件fullcalendar使用详解
2017/01/07 Javascript
Angularjs中使用指令绑定点击事件的方法
2017/03/30 Javascript
Bootstrap 表单验证formValidation 实现表单动态验证功能
2017/05/17 Javascript
详解探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用
2017/06/16 Javascript
JS中原始值和引用值的储存方式示例详解
2018/03/23 Javascript
详解解决Vue相同路由参数不同不会刷新的问题
2018/10/12 Javascript
解决node终端下运行js文件不支持ES6语法
2020/04/04 Javascript
[55:25]VGJ.T vs Optic Supermajor小组赛D组 BO3 第三场 6.3
2018/06/04 DOTA
使用Python的Flask框架构建大型Web应用程序的结构示例
2016/06/04 Python
python实现京东秒杀功能
2018/07/30 Python
python 定时任务去检测服务器端口是否通的实例
2019/01/26 Python
Django如何防止定时任务并发浅析
2019/05/14 Python
python里dict变成list实例方法
2019/06/26 Python
Python编译为二进制so可执行文件实例
2019/12/23 Python
python和js交互调用的方法
2020/06/23 Python
德国汉莎航空中国官网: Lufthansa中国
2017/03/30 全球购物
总经理职责范文
2013/11/08 职场文书
小学生寒假家长评语
2014/04/16 职场文书
《骑牛比赛》教后反思
2014/04/22 职场文书
师恩难忘教学反思
2014/04/27 职场文书
会计求职信范文
2014/05/24 职场文书
知识竞赛拉拉队口号
2014/06/16 职场文书
python关于集合的知识案例详解
2021/05/30 Python
纯html+css实现奥运五环的示例代码
2021/08/02 HTML / CSS