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根据给定文件返回文件名和扩展名的方法
Mar 27 Python
Python 'takes exactly 1 argument (2 given)' Python error
Dec 13 Python
Python实现矩阵转置的方法分析
Nov 24 Python
python实现求最长回文子串长度
Jan 22 Python
python3+selenium实现126邮箱登陆并发送邮件功能
Jan 23 Python
[机器视觉]使用python自动识别验证码详解
May 16 Python
python实现电子书翻页小程序
Jul 23 Python
python文档字符串(函数使用说明)使用详解
Jul 30 Python
如何理解Python中的变量
Jun 01 Python
Pycharm调试程序技巧小结
Aug 08 Python
python线程池 ThreadPoolExecutor 的用法示例
Oct 10 Python
Python实现GIF动图以及视频卡通化详解
Dec 06 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
Symfony2框架学习笔记之HTTP Cache用法详解
2016/03/18 PHP
PHP实现按之字形顺序打印二叉树的方法
2018/01/16 PHP
PHP封装的验证码工具类定义与用法示例
2018/08/22 PHP
二级域名转向类
2006/11/09 Javascript
阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)
2007/05/08 Javascript
JSONP 跨域共享信息
2012/08/16 Javascript
查找页面中所有类为test的结点的方法
2014/03/28 Javascript
js检测输入内容全为空格的方法
2014/05/03 Javascript
究竟什么是Node.js?Node.js有什么好处?
2015/05/29 Javascript
原生js三级联动的简单实现代码
2016/06/07 Javascript
购物车前端开发(jQuery和bootstrap3)
2016/08/27 Javascript
jquery对象与DOM对象转化
2017/02/08 Javascript
JavaScript for循环 if判断语句(学习笔记)
2017/10/11 Javascript
vue实现密码显示隐藏切换功能
2018/02/23 Javascript
Layui数据表格跳转到指定页的实现方法
2019/09/05 Javascript
Javascript摸拟自由落体与上抛运动原理与实现方法详解
2020/04/08 Javascript
react-native 实现购物车滑动删除效果的示例代码
2021/01/15 Javascript
使用Python的判断语句模拟三目运算
2015/04/24 Python
Python检测网站链接是否已存在
2016/04/07 Python
Python3中类、模块、错误与异常、文件的简易教程
2017/11/20 Python
python爬虫之验证码篇3-滑动验证码识别技术
2019/04/11 Python
python 按钮点击关闭窗口的实现
2020/03/04 Python
CSS3实现闪烁动画效果的方法
2015/02/09 HTML / CSS
水芝澳美国官网:H2O Plus
2016/10/15 全球购物
美味咖啡的顶级烘焙师:Cafe Britt
2018/03/15 全球购物
次世代生活态度:Hypebeast
2018/07/05 全球购物
Calphalon美国官网:美国顶级锅具品牌
2020/02/05 全球购物
关于逃课的检讨书
2014/01/23 职场文书
艺术学院毕业生自我评价
2014/03/02 职场文书
2014年售后服务工作总结
2014/11/18 职场文书
学习雷锋精神活动总结
2015/02/06 职场文书
学校党支部承诺书
2015/04/30 职场文书
爱国主义主题班会
2015/08/14 职场文书
导游词之沈阳植物园
2019/11/30 职场文书
Redis中缓存穿透/击穿/雪崩问题和解决方法
2021/12/04 Redis
uniapp开发打包多端应用完整方法指南
2022/12/24 Javascript