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应用03 使用PyQT制作视频播放器实例
Dec 07 Python
python中子类继承父类的__init__方法实例
Dec 15 Python
Python 实现12306登录功能实例代码
Feb 09 Python
Python编程中NotImplementedError的使用方法
Apr 21 Python
python实现nao机器人身体躯干和腿部动作操作
Apr 29 Python
Django Channels 实现点对点实时聊天和消息推送功能
Jul 17 Python
django框架模板语言使用方法详解
Jul 18 Python
Python 正则表达式 re.match/re.search/re.sub的使用解析
Jul 22 Python
python中利用matplotlib读取灰度图的例子
Dec 07 Python
python GUI库图形界面开发之PyQt5动态加载QSS样式文件
Feb 25 Python
Python基于template实现字符串替换
Nov 27 Python
Django migrate报错的解决方案
May 20 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设置静态内容缓存时间的方法
2014/12/01 PHP
四种php中webservice实现的简单架构方法及实例
2015/02/03 PHP
php构造函数的继承方法
2015/02/09 PHP
Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境
2015/03/03 PHP
编写PHP脚本来实现WordPress中评论分页的功能
2015/12/10 PHP
php使用preg_match()函数验证ip地址的方法
2017/01/07 PHP
JavaScript mapreduce工作原理简析
2012/11/25 Javascript
AngularJS中的模块详解
2015/01/29 Javascript
JavaScript数组随机排列实现随机洗牌功能
2015/03/19 Javascript
JavaScript设置表单上传时文件个数的方法
2015/08/11 Javascript
基于Arcgis for javascript实现百度地图ABCD marker的效果
2015/09/12 Javascript
AngularJS directive返回对象属性详解
2016/03/28 Javascript
ES6记录异步函数的执行时间详解
2016/08/31 Javascript
JS+HTML+CSS实现轮播效果
2017/11/28 Javascript
微信小程序全选多选效果实现代码解析
2020/01/21 Javascript
JS Array.from()将伪数组转换成数组的方法示例
2020/03/23 Javascript
Element-ui 自带的两种远程搜索(模糊查询)用法讲解
2021/01/29 Javascript
详解js创建对象的几种方式和对象方法
2021/03/01 Javascript
python中cPickle用法例子分享
2014/01/03 Python
python使用Flask操作mysql实现登录功能
2018/05/14 Python
mac安装scrapy并创建项目的实例讲解
2018/06/13 Python
python爬虫 批量下载zabbix文档代码实例
2019/08/21 Python
python科学计算之numpy——ufunc函数用法
2019/11/25 Python
Python迭代器协议及for循环工作机制详解
2020/07/14 Python
paramiko使用tail实时获取服务器的日志输出详解
2020/12/06 Python
GUESS盖尔斯法国官网:美国时尚品牌
2016/09/23 全球购物
澳大利亚领先的内衣店:Bendon Lingerie澳大利亚
2020/05/15 全球购物
两则小学生的自我评价分享
2013/11/14 职场文书
党的群众路线整改落实情况汇报
2014/10/28 职场文书
幼儿园教师师德师风承诺书
2015/04/28 职场文书
孔子观后感
2015/06/08 职场文书
李强为自己工作观后感
2015/06/11 职场文书
前端vue+express实现文件的上传下载示例
2022/02/18 Vue.js
SQL SERVER触发器详解
2022/02/24 SQL Server
mybatis 获取更新记录的id
2022/05/20 Java/Android
win10拖拽文件时崩溃怎么解决?win10文件不能拖拽问题解决方法
2022/08/14 数码科技