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 相关文章推荐
详解Python2.x中对Unicode编码的使用
Apr 03 Python
win10系统中安装scrapy-1.1
Jul 03 Python
Python图算法实例分析
Aug 13 Python
python matplotlib 在指定的两个点之间连线方法
May 25 Python
Python之用户输入的实例
Jun 22 Python
Python3匿名函数用法示例
Jul 25 Python
Python使用一行代码获取上个月是几月
Aug 30 Python
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
Jan 05 Python
python实现计数排序与桶排序实例代码
Mar 28 Python
Python检测数据类型的方法总结
May 20 Python
python创建学生管理系统
Nov 22 Python
完美解决Django2.0中models下的ForeignKey()问题
May 19 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 数组排序 array_multisort与uasort的区别
2011/03/24 PHP
ThinkPHP框架设计及扩展详解
2014/11/25 PHP
PHP实现QQ空间自动回复说说的方法
2015/12/02 PHP
thinkPHP中验证码的简单实现方法
2016/12/05 PHP
php layui实现前端多图上传实例
2019/07/30 PHP
php实现微信小程序授权登录功能(实现流程)
2019/11/13 PHP
插件:检测javascript的内存泄漏
2007/03/04 Javascript
jqPlot Option配置对象详解
2009/07/25 Javascript
JS加jquery简单实现标签元素的显示或隐藏
2013/09/23 Javascript
js使用eval解析json(js中使用json)
2014/01/17 Javascript
js父页面与子页面不同时显示的方法
2014/10/16 Javascript
用模版生成HTML的的框架jquery.tmpl使用详解
2015/01/07 Javascript
浅析javascript中的DOM
2015/03/01 Javascript
jQuery给多个不同元素添加class样式的方法
2015/03/26 Javascript
vue.js使用v-if实现显示与隐藏功能示例
2018/07/06 Javascript
对node通过fs模块判断文件是否是文件夹的实例讲解
2019/06/10 Javascript
详解vue beforeRouteEnter 异步获取数据给实例问题
2019/08/09 Javascript
Vue2.X和Vue3.0数据响应原理变化的区别
2019/11/07 Javascript
uni-app微信小程序登录授权的实现
2020/05/22 Javascript
Vue实现省市区三级联动
2020/12/27 Vue.js
jenkins自动构建发布vue项目的方法步骤
2021/01/04 Vue.js
Vue实现多页签组件
2021/01/14 Vue.js
[03:40]2014DOTA2国际邀请赛 B神专访:躲箭真的很难
2014/07/13 DOTA
Python创建日历实例
2014/08/21 Python
win系统下为Python3.5安装flask-mongoengine 库
2016/12/20 Python
Python编程求质数实例代码
2018/01/31 Python
Python远程视频监控程序的实例代码
2019/05/05 Python
详解pytorch tensor和ndarray转换相关总结
2020/09/03 Python
属性与 @property 方法让你的python更高效
2020/09/21 Python
Python fileinput模块如何逐行读取多个文件
2020/10/05 Python
Python实现扫码工具的示例代码
2020/10/09 Python
SQL Server 2000数据库的文件有哪些,分别进行描述。
2015/11/09 面试题
医生学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书
超市工作总结范文2014
2014/12/19 职场文书
未婚证明格式
2015/06/15 职场文书
2016年国培研修日志
2015/11/13 职场文书