数据结构 | 树结构、二叉树、完全二叉树、满二叉树

01 树的概念

树结构是一种描述非线性层次关系的数据结构。除根结点外,其余每个结点有且仅有一个直接前驱。每个结点可以有任意多个直接后继。

  • 树中的结点不能被边连接成环。
  • 树可以没有结点,即为空树。
  • 对有n个结点的树,边数一定是n-1

英文名词表示:tree, root, node, leaf, edge, child, subtree

02 树的相关专业名词

  • 父亲结点,儿子结点,兄弟结点,祖先结点,子孙结点
  • 结点的度, 树的度
    把结点的子树棵树称为结点的度;
    树中结点的最大的度称为树的度;
  • 叶结点(度为0的结点),分支结点
  • 树的深度:(自顶向下)根结点为第一层;
  • 树的高度:(自底向上)
  • 有序数,无序树
  • 森林: N棵互不相交的树的集合。
    在这里插入图片描述

03 二叉树

  • 二叉树的每个结点最多只能有两个子结点。二叉树有左子树和右子数之分。
  • 区分二叉树和度为2的树:二叉树有左右子树之分。
    在这里插入图片描述
  1. 要么二叉树没有根结点,是一棵空树。
  2. 要么二叉树由根结点,左子树,右子树组成,且左子树和右子树都是二叉树。(二叉树的子树仍然是二叉树)
  3. 二叉树的第i层最多有 2i−1 个节点。
  4. 深度为k的二叉树最多有2k−1个节点。
  5. 对于任何一棵二叉树T,如果其终端节点数(即叶节点数)为n0,度为2的节点数为n2,则n0=n2+1

04 满二叉树

满二叉树即在二叉树中除最下层的叶节点外,每层的结点都有两个子节点。

  • 每一层的结点个数都达到了当层能达到的最大结点数。

在这里插入图片描述

05 完全二叉树

完全二叉树即在二叉树中除二叉树最后一层外,其他各层的结点数都达到最大个数,且最后一层叶节点按照从左向右的顺序连续存在,只缺最后一层右侧若干结点。

完全二叉树的特性
  • 顺序存储 若树中包含N个结点,对于任意一个结点m来说,
  • 如果m != 1,则结点m的父结点的编号为m/2;
  • 如果2*m <= n,则结点m的左子树根结点的编号为2*m;若2*m > n,则无左子树,也没有右子树。
  • 如果2*m+1 <= n,则结点m的右子树根结点编号为2*m+1;若2*m+1 > n,则无右子数。
  • 对于完全二叉树来说,其深度为 [log2n]+1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值