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 17 Python
Tensorflow使用支持向量机拟合线性回归
Sep 07 Python
python读取txt文件中特定位置字符的方法
Dec 24 Python
python cumsum函数的具体使用
Jul 29 Python
利用pyecharts实现地图可视化的例子
Aug 12 Python
深入浅析python的第三方库pandas
Feb 13 Python
基于Python爬取爱奇艺资源过程解析
Mar 02 Python
Python 实现敏感目录扫描的示例代码
May 21 Python
解决Pytorch自定义层出现多Variable共享内存错误问题
Jun 28 Python
Python unittest基本使用方法代码实例
Jun 29 Python
K近邻法(KNN)相关知识总结以及如何用python实现
Jan 28 Python
python上下文管理的使用场景实例讲解
Mar 03 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
世界收音机发展史
2021/03/01 无线电
PHP中使用gettext来支持多语言的方法
2011/05/02 PHP
PHP实现多图片上传类实例
2014/07/26 PHP
PHP冒泡算法详解(递归实现)
2014/11/10 PHP
MAC下通过改apache配置文件切换php多版本的方法
2017/04/26 PHP
PHP实现无限极分类的两种方式示例【递归和引用方式】
2019/03/25 PHP
收藏Javascript中常用的55个经典技巧
2007/08/12 Javascript
Jquery选择器 $实现原理
2009/12/02 Javascript
JavaScript中数组对象的那些自带方法介绍
2013/03/12 Javascript
js opener的使用详解
2014/01/11 Javascript
关于Javascript 对象(object)的prototype
2014/05/09 Javascript
js 通过html()及text()方法获取并设置p标签的显示值
2014/05/14 Javascript
简介JavaScript中toTimeString()方法的使用
2015/06/12 Javascript
Javascript页面跳转常见实现方式汇总
2015/11/28 Javascript
Bootstrap源码解读下拉菜单(4)
2016/12/23 Javascript
详解Javascript获取缓存和清除缓存API
2017/05/25 Javascript
js生成word中图片处理方法
2018/01/06 Javascript
Node.js动手撸一个静态资源服务器的方法
2019/03/09 Javascript
[49:08]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python3学习笔记之列表方法示例详解
2017/10/06 Python
详谈在flask中使用jsonify和json.dumps的区别
2018/03/26 Python
关于PyTorch源码解读之torchvision.models
2019/08/17 Python
使用python执行shell脚本 并动态传参 及subprocess的使用详解
2020/03/06 Python
CSS3中的常用选择器使用示例整理
2016/06/13 HTML / CSS
什么是托管函数?托管函数有什么用?
2014/06/15 面试题
微型企业创业投资计划书
2014/01/10 职场文书
护理学应聘自荐书范文
2014/02/05 职场文书
警校毕业生自我评价
2014/04/06 职场文书
大学活动总结范文
2014/04/29 职场文书
国贸专业求职信
2014/06/28 职场文书
2014年除四害工作总结
2014/12/06 职场文书
敬老院义诊活动总结
2015/05/07 职场文书
2015年保险业务员工作总结
2015/05/27 职场文书
学会感恩主题班会
2015/08/12 职场文书
小学班主任心得体会
2016/01/07 职场文书
Django使用echarts进行可视化展示的实践
2021/06/10 Python