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支持断点续传的多线程下载示例
Jan 16 Python
浅谈python多线程和队列管理shell程序
Aug 04 Python
详解Python中映射类型的内建函数和工厂函数
Aug 19 Python
Python中for循环和while循环的基本使用方法
Aug 21 Python
python3.6使用urllib完成下载的实例
Dec 19 Python
Python Flask框架模板操作实例分析
May 03 Python
python实现银联支付和支付宝支付接入
May 07 Python
python中的colorlog库使用详解
Jul 05 Python
python如何将两个txt文件内容合并
Oct 18 Python
python list的index()和find()的实现
Nov 16 Python
Pycharm配置autopep8实现流程解析
Nov 28 Python
vue.js刷新当前页面的实例讲解
Dec 29 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中的正规表达式(一)
2006/10/09 PHP
mac系统下为 php 添加 pcntl 扩展
2016/08/28 PHP
PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)
2017/05/26 PHP
用tip解决Ext列宽度不够的问题
2008/12/13 Javascript
jQuery数据缓存功能的实现思路及简单模拟
2013/05/27 Javascript
JavaScript判断变量是否为空的自定义函数分享
2015/01/31 Javascript
深入理解JavaScript系列(33):设计模式之策略模式详解
2015/03/03 Javascript
JavaScript中点击事件的写法
2016/06/28 Javascript
详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】
2016/12/19 Javascript
详解ES6之用let声明变量以及let loop机制
2017/07/15 Javascript
Vue快速实现通用表单验证的方法
2020/02/24 Javascript
vue移动端写的拖拽功能示例代码
2020/09/09 Javascript
解决vue与node模版引擎的渲染标记{{}}(双花括号)冲突问题
2020/09/11 Javascript
解决vux 中popup 组件Mask 遮罩在最上层的问题
2020/11/03 Javascript
[00:10]DOTA2全国高校联赛速递
2018/05/30 DOTA
[06:49]2018DOTA2国际邀请赛寻真——VirtusPro傲视群雄
2018/08/12 DOTA
python连接远程ftp服务器并列出目录下文件的方法
2015/04/01 Python
python通过openpyxl生成Excel文件的方法
2015/05/12 Python
深入理解Python装饰器
2016/07/27 Python
pycharm远程调试openstack的图文教程
2017/11/21 Python
Python实现生成随机日期字符串的方法示例
2017/12/25 Python
Python实现读写INI配置文件的方法示例
2018/06/09 Python
使用Python AIML搭建聊天机器人的方法示例
2018/07/09 Python
pyqt5 comboBox获得下标、文本和事件选中函数的方法
2019/06/14 Python
python中使用ctypes调用so传参设置遇到的问题及解决方法
2019/06/19 Python
解决tensorflow读取本地MNITS_data失败的原因
2020/06/22 Python
css3选择器基本介绍
2014/12/15 HTML / CSS
女士和男士时尚鞋在线购物:Shoespie
2019/02/28 全球购物
POS解决方案:MUNBYN(热敏打印机、条形码扫描仪)
2020/06/09 全球购物
如何选择使用结构还是类
2014/05/30 面试题
酒店管理毕业生自我鉴定
2014/03/02 职场文书
毕业生如何写自荐信
2014/03/26 职场文书
篮球兴趣小组活动总结
2014/07/07 职场文书
安全先进班组材料
2014/12/26 职场文书
介绍信如何写
2015/01/31 职场文书
Java并发编程之详解CyclicBarrier线程同步
2021/06/23 Java/Android