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中使用判断语句和循环的教程
Apr 25 Python
Python实现以时间换空间的缓存替换算法
Feb 19 Python
python贪婪匹配以及多行匹配的实例讲解
Apr 19 Python
python 读取.csv文件数据到数组(矩阵)的实例讲解
Jun 14 Python
学Python 3的理由和必要性
Nov 19 Python
python 日志 logging模块详细解析
Mar 31 Python
Python参数传递机制传值和传引用原理详解
May 22 Python
基于opencv的selenium滑动验证码的实现
Jul 24 Python
Python sqlalchemy时间戳及密码管理实现代码详解
Aug 01 Python
jupyter 添加不同内核的操作
Feb 06 Python
Python中的变量与常量
Nov 11 Python
baselines示例程序train_cartpole.py的ImportError
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源代码
2009/08/21 PHP
php中通过正则表达式下载内容中的远程图片的函数代码
2012/01/10 PHP
PHP中strlen()和mb_strlen()的区别浅析
2014/06/19 PHP
php时间计算相关问题小结
2016/05/09 PHP
JavaScript QueryString解析类代码
2010/01/17 Javascript
为调试JavaScript添加输出窗口的代码
2010/02/07 Javascript
在VS2008中使用jQuery智能感应的方法
2010/12/30 Javascript
js 如何实现对数据库的增删改查
2012/11/23 Javascript
JS实现字体选色板实例代码
2013/11/20 Javascript
深入理解javascript严格模式(Strict Mode)
2014/11/28 Javascript
JavaScript中的getDay()方法使用详解
2015/06/09 Javascript
jQuery实现移动端滑块拖动选择数字效果
2015/12/24 Javascript
JS实现CheckBox复选框全选、不选或全不选功能
2020/07/28 Javascript
JS获取和修改元素样式的实例代码
2016/08/06 Javascript
微信小程序实现消息框弹出动画
2020/04/18 Javascript
关于layui表单中按钮自动提交的解决方法
2019/09/09 Javascript
[02:33]2014DOTA2 TI每日综述 LGD涉险晋级DK闯入胜者组
2014/07/14 DOTA
[00:57]林俊杰助阵DOTA2亚洲邀请赛
2015/01/28 DOTA
[51:43]OG vs LGD 2018国际邀请赛淘汰赛BO3 第五场 8.26
2018/08/30 DOTA
pytorch构建网络模型的4种方法
2018/04/13 Python
Anaconda和ipython环境适配的实现
2020/04/22 Python
基于python实现破解滑动验证码过程解析
2020/05/28 Python
python从Oracle读取数据生成图表
2020/10/14 Python
详解利用canvas实现环形进度条的方法
2019/06/12 HTML / CSS
德国珠宝和手表在线商店:VALMANO
2019/03/24 全球购物
速比涛英国官网:Speedo英国
2019/07/15 全球购物
请用用Java代码写一个堆栈
2012/01/26 面试题
励志演讲稿600字
2014/08/21 职场文书
入党积极分子个人总结
2015/03/02 职场文书
老公写给老婆的检讨书
2015/05/06 职场文书
2015年党风廉政建设目标责任书
2015/05/08 职场文书
领导视察通讯稿
2015/07/18 职场文书
竞聘演讲报告:基本写作有哪些?附开头范文
2019/10/16 职场文书
python实现web邮箱扫描的示例(附源码)
2021/03/30 Python
低版本Druid连接池+MySQL驱动8.0导致线程阻塞、性能受限
2021/07/01 MySQL
Android 中的类文件和类加载器详情
2022/06/05 Java/Android