python数据结构树和二叉树简介


Posted in Python onApril 29, 2014

一、树的定义

树形结构是一类重要的非线性结构。树形结构是结点之间有分支,并具有层次关系的结构。它非常类似于自然界中的树。
树的递归定义:
树(Tree)是n(n≥0)个结点的有限集T,T为空时称为空树,否则它满足如下两个条件:
(1)有且仅有一个特定的称为根(Root)的结点;
(2)其余的结点可分为m(m≥0)个互不相交的子集Tl,T2,…,Tm,其中每个子集本身又是一棵树,并称其为根的子树(Subree)。

二、二叉树的定义

二叉树是由n(n≥0)个结点组成的有限集合、每个结点最多有两个子树的有序树。它或者是空集,或者是由一个根和称为左、右子树的两个不相交的二叉树组成。
特点:
(1)二叉树是有序树,即使只有一个子树,也必须区分左、右子树;
(2)二叉树的每个结点的度不能大于2,只能取0、1、2三者之一;
(3)二叉树中所有结点的形态有5种:空结点、无左右子树的结点、只有左子树的结点、只有右子树的结点和具有左右子树的结点。

三、二叉树的性质

性质1:二叉树的第i层上最多有个结点。
性质2:深度为h的二叉树上最多有-1个结点。
性质3:具有n个结点的二叉树的高度不小于的最大整数。
性质4:任意一棵二叉树中,如果叶子结点的个数为n0,度为2的结点的个数为n2,则必然有n0=n2+1。
满二叉树:若深度为h的二叉树,恰好具有-1个结点,则称为满二叉树。
完全二叉树:若一棵具有n个结点的二叉树的逻辑结构与满二叉树的前n个结点的逻辑结构完全相同,则称该二叉树为完全二叉树
扩充二叉树:除叶子结点外,其余结点都必须有两个孩子的二叉树。

四、二叉树的存储结构

二叉树的存储结构有顺序存储结构、链式存储结构
顺序存储:结构采用一维数组存储的。根据二叉树的性质6可计算出双亲结点、左右孩子结点的下标。因此满二叉树、完全二叉树的存储可采用一维数组,把结点按从上到下、从左到右的顺序存放在数组中,结点之间的关系可由性质6的公式计算得到。
链式存储:结构采用链表存储二叉树中的数据元素,用链建立二叉树中结点之间的关系。二叉树最常用的链式存储结构是二叉链,每个结点包含三个域,分别是数据元素域data、左孩子链域lChild和右孩子链域rChild。与单链表带头结点和不带头结点的两种情况相似,二叉链存储结构的二叉树也有带头结点和不带头结点两种

五、二叉树的操作

Python 相关文章推荐
编写自定义的Django模板加载器的简单示例
Jul 21 Python
python简单实现刷新智联简历
Mar 30 Python
pycharm远程开发项目的实现步骤
Jan 20 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
Feb 13 Python
Python中的支持向量机SVM的使用(附实例代码)
Jun 26 Python
Python中typing模块与类型注解的使用方法
Aug 05 Python
python实现将json多行数据传入到mysql中使用
Dec 31 Python
python学生管理系统的实现
Apr 05 Python
Python读取yaml文件的详细教程
Jul 21 Python
Python如何使用ConfigParser读取配置文件
Nov 12 Python
Python调用Redis的示例代码
Nov 24 Python
python中scipy.stats产生随机数实例讲解
Feb 19 Python
Python的ORM框架SQLAlchemy入门教程
Apr 28 #Python
Python中实现远程调用(RPC、RMI)简单例子
Apr 28 #Python
Python的ORM框架SQLObject入门实例
Apr 28 #Python
django自定义Field实现一个字段存储以逗号分隔的字符串
Apr 27 #Python
python监控网卡流量并使用graphite绘图的示例
Apr 27 #Python
python抓取网页图片示例(python爬虫)
Apr 27 #Python
python实现sublime3的less编译插件示例
Apr 27 #Python
You might like
不用GD库生成当前时间的PNG格式图象的程序
2006/10/09 PHP
PHP生成静态页面详解
2006/12/05 PHP
一段防盗连的PHP代码
2006/12/06 PHP
Session服务器配置指南与使用经验的深入解析
2013/06/17 PHP
解析php中反射的应用
2013/06/18 PHP
php数组指针操作详解
2017/02/14 PHP
PHP进程通信基础之信号
2017/02/19 PHP
javaScript 动态访问JSon元素示例代码
2013/08/30 Javascript
JQuery插件fancybox无法在弹出层使用左右键的解决办法
2013/12/25 Javascript
jquery用offset()方法获得元素的xy坐标
2014/09/06 Javascript
JS+CSS实现大气清新的滑动菜单效果代码
2015/10/22 Javascript
jquery判断复选框是否选中进行答题提示特效
2015/12/10 Javascript
laravel5.4+vue+element简单搭建的示例代码
2017/08/29 Javascript
Element-UI踩坑之Pagination组件的使用
2018/10/29 Javascript
vue实现文字横向无缝走马灯组件效果的实例代码
2019/04/09 Javascript
vue多个元素的样式选择器问题
2019/11/29 Javascript
在vue中使用console.log无效的解决
2020/08/09 Javascript
python通过smpt发送邮件的方法
2015/04/30 Python
Python ftp上传文件
2016/02/13 Python
Python自动化运维和部署项目工具Fabric使用实例
2016/09/18 Python
深入理解python中的select模块
2017/04/23 Python
python算法演练_One Rule 算法(详解)
2017/05/17 Python
python爬虫使用cookie登录详解
2017/12/27 Python
pycharm设置注释颜色的方法
2018/05/23 Python
Python2.7.10以上pip更新及其他包的安装教程
2018/06/12 Python
django进阶之cookie和session的使用示例
2018/08/17 Python
Python实现注册、登录小程序功能
2018/09/21 Python
python随机在一张图像上截取任意大小图片的方法
2019/01/24 Python
在Python中实现函数重载的示例代码
2019/12/12 Python
HTML5实现QQ聊天气泡效果
2017/06/26 HTML / CSS
加利福尼亚州威尼斯的女性奢侈品设计师服装和概念店:Mona Moore
2018/09/13 全球购物
屈臣氏官方旗舰店:亚洲享负盛名的保健及美妆零售商
2019/03/15 全球购物
比较基础的php面试题及答案-填空题
2014/04/26 面试题
2014年十一国庆节爱国演讲稿
2014/09/23 职场文书
中学生国庆节演讲稿2015
2015/07/30 职场文书
2019学生会干事辞职信
2019/06/27 职场文书