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将mdb数据库文件导入postgresql数据库示例
Feb 17 Python
爬山算法简介和Python实现实例
Apr 26 Python
Python的条件语句与运算符优先级详解
Oct 13 Python
python实现多线程抓取知乎用户
Dec 12 Python
python使用pyqt写带界面工具的示例代码
Oct 23 Python
Python快速排序算法实例分析
Nov 29 Python
PYTHON基础-时间日期处理小结
May 05 Python
浅谈python中对于json写入txt文件的编码问题
Jun 07 Python
Python实现将Excel转换成xml的方法示例
Aug 25 Python
Numpy的简单用法小结
Aug 28 Python
python连接mongodb集群方法详解
Feb 13 Python
浅谈keras中的Merge层(实现层的相加、相减、相乘实例)
May 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实现信用卡校验位算法THE LUHN MOD-10示例
2014/05/07 PHP
新浪SAE搭建PHP项目教程
2015/01/28 PHP
php 如何获取文件的后缀名
2016/06/05 PHP
PHP实现的分页类定义与用法示例
2017/07/05 PHP
整理一些JavaScript的IE和火狐的兼容性注意事项
2011/03/17 Javascript
jquery将一个表单序列化为一个对象的方法
2014/01/03 Javascript
利用jquery.qrcode在页面上生成二维码且支持中文
2014/02/12 Javascript
jQuery避免$符和其他JS库冲突的方法对比
2014/02/20 Javascript
jQuery模拟点击A标记示例参考
2014/04/17 Javascript
JQuery中两个ul标签的li互相移动实现方法
2015/05/18 Javascript
仅30行代码实现Javascript中的MVC
2016/02/15 Javascript
JS操作COOKIE实现备忘记录的方法
2016/04/01 Javascript
JS控制伪元素的方法汇总
2016/04/06 Javascript
分享jQuery网页元素拖拽插件
2020/12/01 Javascript
EasyUI 中combotree 默认不能选择父节点的实现方法
2016/11/07 Javascript
jQuery EasyUI Panel面板组件使用详解
2017/02/28 Javascript
nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)
2017/07/05 NodeJs
Vue官网todoMVC示例代码
2018/01/29 Javascript
[48:31]完美世界DOTA2联赛PWL S3 DLG vs Phoenix 第二场 12.17
2020/12/19 DOTA
python练习程序批量修改文件名
2014/01/16 Python
Python之日期与时间处理模块(date和datetime)
2017/02/16 Python
Python实现句子翻译功能
2017/11/14 Python
python线程池threadpool使用篇
2018/04/27 Python
详解pandas.DataFrame中删除包涵特定字符串所在的行
2019/04/04 Python
详解python中的模块及包导入
2019/08/30 Python
解析Python3中的Import
2019/10/13 Python
Pytorch使用MNIST数据集实现基础GAN和DCGAN详解
2020/01/10 Python
使用Python第三方库pygame写个贪吃蛇小游戏
2020/03/06 Python
Python jieba结巴分词原理及用法解析
2020/11/05 Python
python中判断数字是否为质数的实例讲解
2020/12/06 Python
纯CSS3实现滚动的齿轮动画效果
2014/06/05 HTML / CSS
来自南加州灵感的工作和娱乐服装:TravisMathew
2019/05/01 全球购物
高中班主任评语
2014/12/30 职场文书
任长霞观后感
2015/06/16 职场文书
pnpm对npm及yarn降维打击详解
2022/08/05 Javascript
httpclient调用远程接口的方法
2022/08/14 Java/Android