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处理html转义字符的方法详解
Jul 01 Python
Python实现简单http服务器
Apr 12 Python
Python对CSV、Excel、txt、dat文件的处理
Sep 18 Python
为什么str(float)在Python 3中比Python 2返回更多的数字
Oct 16 Python
Python爬虫动态ip代理防止被封的方法
Jul 07 Python
Python中常用的高阶函数实例详解
Feb 21 Python
Django实现将views.py中的数据传递到前端html页面,并展示
Mar 16 Python
Python super()函数使用及多重继承
May 06 Python
Pytorch环境搭建与基本语法
Jun 03 Python
PyCharm MySQL可视化Database配置过程图解
Jun 09 Python
详解Python中的文件操作
Jan 14 Python
python之django路由和视图案例教程
Jul 26 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_merge与array+array的区别
2013/06/21 PHP
浅析php中json_encode()和json_decode()
2014/05/25 PHP
PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
2017/07/03 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
PHP中cookie知识点学习
2018/05/06 PHP
PHP PDOStatement::fetch讲解
2019/01/31 PHP
PHP实现的敏感词过滤方法示例
2019/03/06 PHP
JavaScript 无符号右移赋值操作
2009/04/17 Javascript
Jquery.addClass始终无效原因分析
2013/09/08 Javascript
父元素与子iframe相互获取变量和元素对象的具体实现
2013/10/15 Javascript
javascript(js)的小数点乘法除法问题详解
2014/03/07 Javascript
原生js仿jquery animate动画效果
2016/07/13 Javascript
基于jQuery插件jqzoom实现的图片放大镜效果示例
2017/01/23 Javascript
ES6基础之数组和对象的拓展实例详解
2019/08/22 Javascript
浅谈vue 锚点指令v-anchor的使用
2019/11/13 Javascript
element el-tree组件的动态加载、新增、更新节点的实现
2020/02/27 Javascript
修改NPM全局模式的默认安装路径的方法
2020/12/15 Javascript
python和pyqt实现360的CLable控件
2014/02/21 Python
Python中的getopt函数使用详解
2015/07/28 Python
Python压缩解压缩zip文件及破解zip文件密码的方法
2015/11/04 Python
python3实现磁盘空间监控
2018/06/21 Python
python opencv图片编码为h264文件的实例
2019/12/12 Python
使用Keras 实现查看model weights .h5 文件的内容
2020/06/09 Python
python中K-means算法基础知识点
2021/01/25 Python
使用CSS3制作倾斜导航条和毛玻璃效果
2017/09/12 HTML / CSS
美国照明、家居装饰和家具购物网站:Bellacor
2017/09/20 全球购物
美国在线自行车商店:Jenson USA
2018/05/22 全球购物
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
2014/07/21 面试题
运动会广播稿20字
2014/02/18 职场文书
《路旁的橡树》教学反思
2014/04/07 职场文书
经营理念口号
2014/06/21 职场文书
2014年最新领导班子整改方案
2014/09/27 职场文书
民主评议党员工作总结
2014/10/20 职场文书
2016年情人节问候语
2015/11/11 职场文书
六一儿童节致辞稿(3篇)
2019/07/11 职场文书
JS 基本概念详细介绍
2021/10/16 Javascript