当前位置: 首页 > news >正文

数据结构10:树和二叉树

文章目录

  • 简介
  • 二叉树中的术语
  • 二叉树的性质

简介

前面我们讲到的线性表、队列和栈都是一对一的数据结构,下面我们要讲的树是一种一对多的数据结构----树。
树的严格定义如下:
树:树是n(n=>0)个节点的有限集。 n=0时成为空树。在任意一颗非空树中:(1)有且仅有一个称为根的节点;(2)当n>0时,其余节点可分为m(m>0)个互不相交的有限集T1、T2、T3、Tm,其中每个节点又是一棵树,并且称为根的子树。
树的结构图1所示:
在这里插入图片描述
在图1中,A作为树的根节点,它有B和C两个节点;同时B和C也是一颗树,分别有3个和2个节点。
树这种数据结构在实际中有很多的应用,例如文件目录,如图2所示。
在这里插入图片描述
二叉树
二叉树是一种特殊的树,它的每个节点上最多只能有两个子节点(简称为左孩子和右孩子),它的结构如3所示。A作为根节点,它的左孩子是B,右孩子是C;同时B和C也都是一棵树,D、E和F、G分别是它们的孩子。二叉树较为简单,并且易于理解,我将它作为重点,进行详细讲解。
在这里插入图片描述

二叉树中的术语

结点度:节点所拥有的孩子的个数成为该节点的度,在二叉树中度的取值只能是0,1,2。图3中A、B、C它们的度为2,D、E、F、G的度为0。
叶节点:度为0的节点成为叶结点或终端结点。图3中,D、E、F、G都为终端节点。
左孩子、右孩子、双亲:树中一个结点的子树的根结点称为这个结点的孩子。这个结点称为它孩子结点的双亲。具有同一个双亲的孩子结点互称为兄弟。在图3中,D是B左孩子,E是B的右孩子,B是D和E的双亲,D和E互为兄弟。
结点的层数:规定树的根结点的层数为1,其余结点的层数等于它的双亲结点的层数加1。在图3中,A的层数为1,B的层数为2,D的层数为3。
树的深度:树中所有结点的最大层数称为树的深度。图3中的树就是一个深度为3的树。
满二叉树:在一棵二叉树中,如果所有分支结点都存在左子树和右子树,并且所有叶子结点都在同一层上,这样的一棵二叉树称作满二叉树。图3中的树就是一棵满二叉树。
完全二叉树:一棵深度为k的有n个结点的二叉树,对树中的结点按从上至下、从左到右的顺序进行编号,如果编号为i(1≤i≤n)的结点与满二叉树中编号为 i的结点在二叉树中的位置相同,则这棵二叉树称为完全二叉树。完全二叉树的特点是:叶子结点只能出现在最下层和次下层,且最下层的叶子结点集中在树的左部。完全二叉树如图4所示。
在这里插入图片描述

二叉树的性质

1:二叉树第i层上的结点数目最多为 2{i-1} (i≥1)。
2:深度为k的二叉树至多有2{k}-1个结点(k≥1)。
3:包含n个结点的二叉树的高度至少为log2(n+1)。
4:在任意一棵二叉树中,若终端结点的个数为n0,度为2的结点数为n2,则n0=n2+1。

本节主要介绍了树的和二叉树的基本概念,并对二叉树中的术语和性质进行了简单的介绍。在下一章节中,我们将对二叉树的遍历方式、数据结构和API函数进行介绍。

http://www.dtcms.com/a/517541.html

相关文章:

  • 手机网站进不去怎么办自己建网站有什么好处
  • 高端建站什么意思wordpress 识别pc手机版
  • 从零开始:设计你第一款游戏的“法则”
  • 电子商务网站建设与管理的总结wordpress如何开启阿里云cdn
  • 国外网站模板欣赏做ps兼职的网站有哪些
  • 扬中网站制作公司苏州网页设计方法
  • wordpress网站无法登陆北京企业网站设计
  • 网页模板快速建站工具如何拥有自己的域名
  • 腾讯位置商业授权数据可视化 JS API
  • 揭阳网站制作费用微信crm系统
  • 如何黑网站龙岩好工作人才网最新招聘信息
  • 【矩阵分析与应用】【第8章 特征分析】【8.3 凯莱-哈密顿定理证明(伴随矩阵法)】
  • 手机网站开发技术网站建设报价 福州
  • docker技术之docker仓库的部署
  • 配置网站域名解析巧更妙改wordpress语言_wordpress英文变中文
  • 建设一个网站可以采用那几方案在线设计平台的消费者分析
  • pinia快速入门
  • 广州安全教育平台app下载seo外贸网站建设
  • thinkphp8 连接pgsql数据库,报错ERROR: function table_msg(unknown) does not exist
  • 做的比较好的二手交易网站有哪些揭阳网站建设antnw
  • 怎么在百度建立公司网站厦门外贸推广
  • 注册域名之后怎么做网站毕业答辩ppt模板免费下载网站
  • 自适应网站制作公司网站建设商务合同
  • 网站界面设计的发展趋势长春网站建设公司排名前十
  • 03-Machine-3-display_and_touch.py K230外接液晶显示屏与电容触摸屏功能演示
  • 固定在网站底部核酸检测收费
  • 非盈利网站建设问题北京朝阳区楼盘
  • 做淘宝客网站制作教程视频资金盘网站开发多少钱
  • JUC 之 Lock内部组件(队列同步器、阻塞与唤醒、Condition)
  • 知识就是力量——Tkinter与PyQt的区别和优缺点