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 05 Python
pandas 两列时间相减换算为秒的方法
Apr 20 Python
无法使用pip命令安装python第三方库的原因及解决方法
Jun 12 Python
转换科学计数法的数值字符串为decimal类型的方法
Jul 16 Python
python selenium爬取斗鱼所有直播房间信息过程详解
Aug 09 Python
Python 利用高德地图api实现经纬度与地址的批量转换
Aug 14 Python
python 使用while写猜年龄小游戏过程解析
Oct 07 Python
Django数据库操作之save与update的使用
Apr 01 Python
Spring http服务远程调用实现过程解析
Jun 11 Python
Python魔术方法专题
Jun 19 Python
python3 re返回形式总结
Nov 20 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
Jan 27 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生成数组的使用示例 php全组合算法
2014/01/16 PHP
PHP中set error handler函数用法小结
2015/11/11 PHP
PHP 5.6.11中CURL模块问题的解决方法
2016/08/08 PHP
JavaScript 指导方针
2007/04/05 Javascript
JavaScript 利用StringBuffer类提升+=拼接字符串效率
2009/11/24 Javascript
jquery 关于event.target使用的几点说明介绍
2013/04/26 Javascript
Javascript中With语句用法实例
2015/05/14 Javascript
jQuery子元素过滤选择器用法示例
2016/09/09 Javascript
进阶之初探nodeJS
2017/01/24 NodeJs
jQuery遍历节点方法汇总(推荐)
2017/05/13 jQuery
vue2.0 父组件给子组件传递数据的方法
2018/01/15 Javascript
p5.js入门教程之鼠标交互的示例
2018/03/16 Javascript
Vue利用Blob下载原生二进制数组文件
2019/09/25 Javascript
JavaScript实现Excel表格效果
2020/02/07 Javascript
vue中利用three.js实现全景图的完整示例
2020/12/07 Vue.js
Python批量提取PDF文件中文本的脚本
2018/03/14 Python
python3.X 抓取火车票信息【修正版】
2018/06/19 Python
Anaconda2 5.2.0安装使用图文教程
2018/09/19 Python
python 在右键菜单中加入复制目标文件的有效存放路径(单斜杠或者双反斜杠)
2020/04/08 Python
TensorFlow2.1.0最新版本安装详细教程
2020/04/08 Python
python中for in的用法详解
2020/04/17 Python
HTML5本地存储之Web Storage应用介绍
2013/01/06 HTML / CSS
Microsoft新加坡官方网站:购买微软最新软件和技术产品
2016/10/28 全球购物
澳洲女装时尚在线:Blue Bungalow
2018/05/05 全球购物
农村葬礼主持词
2014/03/31 职场文书
购房协议书范本
2014/04/11 职场文书
身边的榜样活动方案
2014/08/20 职场文书
小学生感恩父母演讲稿
2014/08/28 职场文书
党员群众路线自我剖析材料
2014/10/06 职场文书
干部作风建设工作总结
2014/10/29 职场文书
领导欢迎词致辞
2015/01/23 职场文书
幼儿园教师工作总结2015
2015/04/02 职场文书
2016年情人节问候语
2015/11/11 职场文书
python获取淘宝服务器时间的代码示例
2021/04/22 Python
js前端面试常见浏览器缓存强缓存及协商缓存实例
2022/06/21 Javascript
postgresql之greenplum字符串去重拼接方式
2023/05/08 PostgreSQL