python二叉树的实现实例


Posted in Python onNovember 21, 2013

树的定义

树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构,很象自然界中的树那样。树结构在客观世界中广泛存在,如人类社会的族谱和各种社会组织机构都可用树形象表示。树在计算机领域中也得到广泛应用,如在编译源程序时,可用树表示源程序的语法结构。又如在数据库系统中,树型结构也是信息的重要组织形式之一。一切具有层次关系的问题都可用树来描述。
树结构的特点是:它的每一个结点都可以有不止一个直接后继,除根结点外的所有结点都有且只有一个直接前驱。
树的递归定义如下:(1)至少有一个结点(称为根)(2)其它是互不相交的子树

二叉树: 
二叉树是由n(n≥0)个结点组成的有限集合、每个结点最多有两个子树的有序树。它或者是空集,或者是由一个根和称为左、右子树的两个不相交的二叉树组成。

二叉树特点:
(1)二叉树是有序树,即使只有一个子树,也必须区分左、右子树;
(2)二叉树的每个结点的度不能大于2,只能取0、1、2三者之一;
(3)二叉树中所有结点的形态有5种:空结点、无左右子树的结点、只有左子树的结点、只有右子树的结点和具有左右子树的结点。

二叉树基本的数据结构

#!/usr/bin/python
# -*- coding: utf-8 -*-
class TreeNode(object):
    def __init__(self,data,left,right):
        self.data = data
        self.left = left
        self.right = right

class BTree(object):
    def __init__(self,root=0):
        self.root = root
Python 相关文章推荐
python中 ? : 三元表达式的使用介绍
Oct 09 Python
在Python的Django框架中包装视图函数
Jul 20 Python
利用Python的Django框架生成PDF文件的教程
Jul 22 Python
python中print的不换行即时输出的快速解决方法
Jul 20 Python
python批量修改文件夹及其子文件夹下的文件内容
Mar 15 Python
Python计算一个点到所有点的欧式距离实现方法
Jul 04 Python
python常用排序算法的实现代码
Nov 08 Python
numpy中三维数组中加入元素后的位置详解
Nov 28 Python
基于Python 的语音重采样函数解析
Jul 06 Python
使用matplotlib的pyplot模块绘图的实现示例
Jul 12 Python
python属于哪种语言
Aug 16 Python
python 爬取百度文库并下载(免费文章限定)
Dec 04 Python
python冒泡排序算法的实现代码
Nov 21 #Python
python选择排序算法的实现代码
Nov 21 #Python
python插入排序算法的实现代码
Nov 21 #Python
python快速排序代码实例
Nov 21 #Python
python二分法实现实例
Nov 21 #Python
Python列表推导式的使用方法
Nov 21 #Python
python调用shell的方法
Nov 20 #Python
You might like
PHP无限分类代码,支持数组格式化、直接输出菜单两种方式
2011/05/18 PHP
php学习之数据类型之间的转换介绍
2011/06/09 PHP
用PHP解决的一个栈的面试题
2014/07/02 PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
2018/12/06 PHP
Referer原理与图片防盗链实现方法详解
2019/07/03 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
2020/02/21 PHP
jQuery 性能优化指南(2)
2009/05/21 Javascript
使用jquery实现div的tab切换实例代码
2013/05/27 Javascript
用js实现输入提示(自动完成)的实例代码
2013/06/14 Javascript
jQuery制作简洁的多级联动Select下拉框
2014/12/23 Javascript
在Google 地图上实现做的标记相连接
2015/01/05 Javascript
JavaScript限定图片显示大小的方法
2015/03/11 Javascript
浅谈JavaScript中指针和地址
2015/07/26 Javascript
每天一篇javascript学习小结(Function对象)
2015/11/16 Javascript
用JS写的一个Ajax库(实例代码)
2016/08/06 Javascript
jQuery实现的简单拖动层示例
2017/02/22 Javascript
详解vue中localStorage的使用方法
2018/11/22 Javascript
Postman无法正常返回结果问题解决
2020/08/28 Javascript
JavaScript读取本地文件常用方法流程解析
2020/10/12 Javascript
Python 3实战爬虫之爬取京东图书的图片详解
2017/10/09 Python
基于python实现在excel中读取与生成随机数写入excel中
2018/01/04 Python
python实现多线程行情抓取工具的方法
2018/02/28 Python
12个步骤教你理解Python装饰器
2019/07/01 Python
3种python调用其他脚本的方法
2020/01/06 Python
Python Tensor FLow简单使用方法实例详解
2020/01/14 Python
使用Keras加载含有自定义层或函数的模型操作
2020/06/10 Python
Python 如何创建一个线程池
2020/07/28 Python
家乐福台湾线上购物网:Carrefour台湾
2020/09/15 全球购物
Oracle快照(snapshot)
2015/03/13 面试题
廉洁自律承诺书
2014/03/27 职场文书
2014党员学习《反腐倡廉警示教育读本》思想汇报
2014/09/13 职场文书
社区领导班子四风问题原因分析及整改措施
2014/09/28 职场文书
单身证明格式样本
2015/06/15 职场文书
2016年党校科级干部培训班学习心得体会
2016/01/06 职场文书
2016暑期政治学习心得体会
2016/01/23 职场文书
Jupyter notebook 不自动弹出网页的解决方案
2021/05/21 Python