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 相关文章推荐
下载安装setuptool和pip linux安装pip    
Jan 24 Python
数据挖掘之Apriori算法详解和Python实现代码分享
Nov 07 Python
Python在线运行代码助手
Jul 15 Python
教你学会使用Python正则表达式
Sep 07 Python
python 用lambda函数替换for循环的方法
Jun 09 Python
python使用KNN算法识别手写数字
Apr 25 Python
pycharm中显示CSS提示的知识点总结
Jul 29 Python
python实现XML解析的方法解析
Nov 16 Python
Python函数的默认参数设计示例详解
Dec 01 Python
python3爬取torrent种子链接实例
Jan 16 Python
Python多进程编程multiprocessing代码实例
Mar 12 Python
python实现文字版扫雷
Apr 24 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利用iframe实现无刷新文件上传功能的代码
2011/09/29 PHP
php动态实现表格跨行跨列实现代码
2012/11/06 PHP
php中的curl_multi系列函数使用例子
2014/07/29 PHP
smarty简单分页的实现方法
2014/10/27 PHP
PHP统一页面编码避免乱码问题
2015/04/09 PHP
PHP常用文件操作函数和简单实例分析
2016/06/03 PHP
Yii2框架实现注册和登录教程
2016/09/30 PHP
PhpSpreadsheet设置单元格常用操作汇总
2020/11/13 PHP
ThinkPHP6.0如何利用自定义验证规则规范的实现登陆
2020/12/16 PHP
首页图片漂浮效果示例代码
2014/06/05 Javascript
基于javascript如何传递特殊字符
2015/11/30 Javascript
基于javascript实现按圆形排列DIV元素(三)
2016/12/02 Javascript
微信小程序 安全包括(框架、功能模块、账户使用)详解
2017/01/16 Javascript
Vue ElementUI之Form表单验证遇到的问题
2017/08/21 Javascript
浅谈react前后端同构渲染
2017/09/20 Javascript
node.js 用socket实现聊天的示例代码
2017/10/17 Javascript
基于js中this和event 的区别(详解)
2017/10/24 Javascript
vue中render函数的使用详解
2018/10/12 Javascript
python实现多线程网页下载器
2018/04/15 Python
Python数据持久化shelve模块用法分析
2018/06/29 Python
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
2018/09/27 Python
python利用selenium进行浏览器爬虫
2019/04/25 Python
深入学习python多线程与GIL
2019/08/26 Python
Python中Subprocess的不同函数解析
2019/12/10 Python
从多个tfrecord文件中无限读取文件的例子
2020/02/17 Python
python 日志 logging模块详细解析
2020/03/31 Python
使用python画出逻辑斯蒂映射(logistic map)中的分叉图案例
2020/12/11 Python
CSS3中各种颜色属性的使用教程
2016/05/17 HTML / CSS
html5 button autofocus 属性介绍及应用
2013/01/04 HTML / CSS
维多利亚的秘密官方网站:Victoria’s Secret
2018/10/24 全球购物
安全教育心得体会
2013/12/29 职场文书
医院护士的求职信
2014/01/03 职场文书
企业军训感想
2014/02/07 职场文书
求职教师自荐书
2014/06/19 职场文书
乡镇务虚会发言材料
2014/10/20 职场文书
检讨书模板
2015/01/29 职场文书