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使用内存zipfile对象在内存中打包文件示例
Apr 30 Python
Python学习笔记_数据排序方法
May 22 Python
python文件操作整理汇总
Oct 21 Python
在Python中用has_key()方法查找键是否存在的教程
May 21 Python
Python Logging 日志记录入门学习
Jun 02 Python
使用python读取csv文件快速插入数据库的实例
Jun 21 Python
Python双链表原理与实现方法详解
Feb 22 Python
python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍
Feb 25 Python
python烟花效果的代码实例
Feb 25 Python
python 串行执行和并行执行实例
Apr 30 Python
Python Selenium实现无可视化界面过程解析
Aug 25 Python
python 带时区的日期格式化操作
Oct 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 SQL防注入代码集合
2008/04/25 PHP
PHP+XML 制作简单的留言本 图文教程
2009/11/02 PHP
3种php生成唯一id的方法
2015/11/23 PHP
PHP实现在数据库百万条数据中随机获取20条记录的方法
2017/04/19 PHP
extjs 学习笔记 四 带分页的grid
2009/10/20 Javascript
google 搜索框添加关键字实现代码
2010/04/24 Javascript
Wordpress ThickBox 点击图片显示下一张图的修改方法
2010/12/11 Javascript
javascript 按键事件(兼容各浏览器)
2013/12/20 Javascript
AngularJS中的模块详解
2015/01/29 Javascript
使用Node.js实现HTTP 206内容分片的教程
2015/06/23 Javascript
javascript html5移动端轻松实现文件上传
2020/03/27 Javascript
JS简单去除数组中重复项的方法
2016/09/13 Javascript
vue动态路由实现多级嵌套面包屑的思路与方法
2017/08/16 Javascript
在Vue中使用echarts的方法
2018/02/05 Javascript
js中的闭包实例展示
2018/11/01 Javascript
JS栈stack类的实现与使用方法示例
2019/01/31 Javascript
vue+element UI实现树形表格带复选框的示例代码
2019/04/16 Javascript
react-native滑动吸顶效果的实现过程
2019/06/03 Javascript
vue动态循环出的多个select出现过的变为disabled(实例代码)
2019/11/10 Javascript
微信小程序swiper使用网络图片不显示问题解决
2019/12/13 Javascript
[01:03:36]Ti4 循环赛第三日DK vs Titan
2014/07/12 DOTA
探寻python多线程ctrl+c退出问题解决方案
2014/10/23 Python
在Python中通过threading模块定义和调用线程的方法
2016/07/12 Python
python异步存储数据详解
2019/03/19 Python
详解python解压压缩包的五种方法
2019/07/05 Python
Django-rest-framework中过滤器的定制实例
2020/04/01 Python
python打开文件的方式有哪些
2020/06/29 Python
Django中F函数的使用示例代码详解
2020/07/06 Python
德国街头和运动文化高品质商店:BSTN Store
2017/08/26 全球购物
《湘夫人》教学反思
2014/02/21 职场文书
质量月口号
2014/06/20 职场文书
教师党员学习群众路线心得体会
2014/11/04 职场文书
2015年项目经理工作总结
2015/04/30 职场文书
消费者投诉书范文
2015/07/02 职场文书
少先队中队工作总结2015
2015/07/23 职场文书
win10下go mod配置方式
2021/04/25 Golang