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 17 Python
Python魔术方法详解
Feb 14 Python
Python while 循环使用的简单实例
Jun 08 Python
Python变量和数据类型详解
Feb 15 Python
使用Python设计一个代码统计工具
Apr 04 Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
May 21 Python
python实现从文件中读取数据并绘制成 x y 轴图形的方法
Oct 14 Python
python 通过可变参数计算n个数的乘积方法
Jun 13 Python
如何基于python生成list的所有的子集
Nov 11 Python
解决Python数据可视化中文部分显示方块问题
May 16 Python
Python 找出英文单词列表(list)中最长单词链
Dec 14 Python
Python中tqdm的使用和例子
Sep 23 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 mysqli查询语句返回值类型实例分析
2016/06/29 PHP
PHP不使用递归的无限级分类简单实例
2016/11/05 PHP
PHP实现会员账号单唯一登录的方法分析
2019/03/07 PHP
使用javascript访问XML数据的实例
2006/12/27 Javascript
遨游,飞飞,IE,空中网 浏览器无提示关闭方法
2011/07/11 Javascript
javascript中HTMLDOM操作详解
2014/12/11 Javascript
JS判断是否360安全浏览器极速内核的方法
2015/01/29 Javascript
浅谈jQuery中setInterval()方法
2015/07/07 Javascript
pace.js页面加载进度条插件
2015/09/29 Javascript
Bootstrap每天必学之表单
2015/11/23 Javascript
Jquery UI实现一次拖拽多个选中的元素操作
2020/12/01 Javascript
3种不同的ContextMenu右键菜单实现代码
2016/11/03 Javascript
jQuery+CSS3实现点赞功能
2017/03/13 Javascript
react.js使用webpack搭配环境的入门教程
2017/08/14 Javascript
深入浅析Vue不同场景下组件间的数据交流
2017/08/15 Javascript
Node.js引入UIBootstrap的方法示例
2018/05/11 Javascript
bootstrap select2插件用ajax来获取和显示数据的实例
2018/08/09 Javascript
微信小程序异步API为Promise简化异步编程的操作方法
2018/08/14 Javascript
Angular父子组件通过服务传参的示例方法
2018/10/31 Javascript
微信小程序访问豆瓣电影api的实现方法
2019/03/31 Javascript
详细分析Node.js 模块系统
2020/06/28 Javascript
python通过字典dict判断指定键值是否存在的方法
2015/03/21 Python
Python用模块pytz来转换时区
2016/08/19 Python
Python迭代和迭代器详解
2016/11/10 Python
基于tensorflow加载部分层的方法
2018/07/26 Python
Python字典对象实现原理详解
2019/07/01 Python
python多进程并发demo实例解析
2019/12/13 Python
解决Python命令行下退格,删除,方向键乱码(亲测有效)
2020/01/16 Python
pygame用blit()实现动画效果的示例代码
2020/05/28 Python
IFCHIC台湾:欧美国际设计师品牌
2019/05/18 全球购物
delegate与普通函数的区别
2014/01/22 面试题
社区党总支书记先进事迹材料
2014/01/24 职场文书
语文教研活动总结
2014/07/02 职场文书
手术室护士节演讲稿
2014/08/27 职场文书
react国际化react-intl的使用
2021/05/06 Javascript
Redis 异步机制
2022/05/15 Redis