树结构 —— 二叉树的概述

前文

树结构概述

什么是二叉树?

在计算机科学中,二叉树(英语:Binary tree)是每个节点最多只有两个分支(即不存在分支度大于2的节点)的树结构。通常分支被称作“左子树”或“右子树”。二叉树的分支具有左右次序,不能随意颠倒

二叉树的定义

  • 任何一个节点的子节点数量都不超过 2
    在这里插入图片描述
  • 有左节点和右节点(不能随意颠倒)
    在这里插入图片描述
    左边树的左节点为 B,右节点为 C
    右边数的左节点为 C,右节点为 B

满二叉树

什么是满二叉树

除最后一层无任何子节点外,每一层上的所有结点都有两个子结点的二叉树

在上面那幅图的基础上加多一个节点,那么这棵树就变成满二叉树了
在这里插入图片描述

定义

  • 所有叶子节点都在最后一层
  • 节点的总数为: 2 的 n 次方 - 1(n 是树的高度)

这怎么理解呢?比如上面这幅图有三层,所以 n 就等于 3,那么 2 的 3 次方 - 1 就是 7个节点,那么说明这就是一颗完全二叉树

完全二叉树

什么是完全二叉树?

完全二叉树是效率很高的数据结构,完全二叉树是由满二叉树而引出来的。对于深度为 K 的,有 n 个结点的二叉树,当且仅当其每一个结点都与深度为 K 的满二叉树中编号从1至 n 的结点一一对应时称之为完全二叉树

这是一颗完全二叉树

在这里插入图片描述

这也是一颗完全二叉树

在这里插入图片描述

这也是一颗完全二叉树

在这里插入图片描述

这也是一颗完全二叉树

在这里插入图片描述

这不是一颗完全二叉树

在这里插入图片描述

这里为什么说不是完全二叉树?因为这图中最后一层左边并没有连续,直接从右边连续了,所以这并不是完全二叉树

通俗地来说完全二叉树的所有子节点都在最后一层或者倒数第二层,并且最后一层的叶子节点在左边连续(且左节点必须在前)倒数第二节点叶子节点在右边连续依次按顺序能数完的才是完全二叉树

发布了227 篇原创文章 · 获赞 1032 · 访问量 24万+

猜你喜欢

转载自blog.csdn.net/Woo_home/article/details/104693216