数据结构笔记(4)——树(主要是关于二叉树)

本文详细介绍了树的定义、结点分类和层的概念,重点关注二叉树的特点、五种形态以及特殊类型如斜树、满二叉树和完全二叉树。此外,还讲解了二叉树的存储结构——二叉链表,以及前序、中序、后序和层序遍历的方法。
摘要由CSDN通过智能技术生成

这次讲讲树。

首先上定义:

树的定义

在这里插入图片描述
要注意的是:

  1. 只有一个根结点(最顶上的那个结点)
  2. 子树不相交

相交的子树

如上图所示,这就是子树相交的情况。

结点分类

在这里插入图片描述

结点之间关系

在这里插入图片描述
双亲是因为结点雌雄同体,同时是父亲也是母亲。

树的层(level)的概念是从根开始定义的,根是第一层,根的孩子为第二层,如此类推。

在这里插入图片描述此外,如果将树中结点的子树看成从左至右有次序,不能互换,那么称为有序树,否则称为无序树。


二叉树

其实上面的大概知道就可以了,因为真正的重点是二叉树。

在这里插入图片描述
用图来表示就是:

在这里插入图片描述
总之,记住每个结点下的子结点最多只能够有两个就对了。

二叉树特点

  1. 每个结点最多两颗子树
  2. 左子树和右子树有顺序
  3. 即使树中某结点只有一颗子树,也要区分左右

二叉树的五种形态

  1. 空二叉树
  2. 只有一个根结点
  3. 根节点只有左子树
  4. 根节点只有右子树
  5. 根节点既有左子树又有右子树

在这里插入图片描述
上图为皇帝的空二叉树

在这里插入图片描述
只有一个根结点

在这里插入图片描述
根结点只有左子树

在这里插入图片描述
在这里插入图片描述
根结点既有左子树又有右子树

特殊二叉树

斜树

所有结点只有左子树就是左斜树, 反之是右斜树,两者统称斜树

在这里插入图片描述
左斜树

在这里插入图片描述
右斜树

满二叉树

即一颗二叉树中,所有分支结点都存在左子树和右子树,并且所有叶子都在同一层上。

在这里插入图片描述
在这里插入图片描述

完全二叉树

在这里插入图片描述
完全二叉树和满二叉树的不同在于,完全二叉树是满二叉树的子集,满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树。

此外,完全二叉树的结点与同样深度的满二叉树,在按照层序编号的时候编号是一一对应的。例如:

在这里插入图片描述
对应的满二叉树:

在这里插入图片描述
由此可得出完全二叉树的一些特点:

  1. 叶子结点只能出现在最下面的两层
  2. 最下层的叶子一定集中在左部连续位置
  3. 倒数二层如果有叶子结点一定都在右部连续位置
  4. 如果结点度数为1,那么该节点只有左孩子,即不存在只有右子树的情况
  5. 同样节点数的二叉树,完全二叉树的深度最小

所以判断一个二叉树是不是完全二叉树的方法就是:直接给每个结点按照层序进行编号,如果编号出现空当那么就说明不是完全二叉树。

二叉树性质

  1. 在二叉树的第 i i i层上最多有 2 i − 1 2^{i-1} 2i1个结点( i ≥ 1 i \geq 1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值