树-学习笔记

定义:一个树是由n个元素组成的有限集合。其中,每个元素叫结点(node)

性质:

  • 有一个特殊的结点叫根节点(root node)
  • 从图论的角度,一个树有n-1条边,所以它是无环的。同时,它是连通的,因为可以直接或间接地从一个结点走到另一个结点
  • 除了根结点以外,其余的结点可以分成m(m>=0)个互不相交的有限集合 T0,T1,T2...... 其中,每一个集合都叫做这个树的子树
    下面举个栗子捏

image
不难发现,可以分为3个子树(一定要记住,根结点除外!!!)
第一个子树:结点 2,5,6
第二个子树:结点3
第三个子树:结点4,7,8,9

基本概念

  • (1)树是递归定义的
  • (2)一个结点的子树个数称为这个结点的度。还是那张图,结点1的度数就是3,结点3的度数就是0
  • (3)度数为0的结点叫叶结点,度数不为0的结点叫分支结点,根以外的分支结点又叫内部结点
  • (4)一个树,各个结点的度的最大值就是这个树的度。刚刚那张图中,树的度就是3,因为根结点的度最大,为3
  • (5)在一个树中,上端结点叫做下端结点的父结点,下端结点叫上端结点的子结点。
  • (6)同一个父结点的多个子结点叫做兄弟结点
  • (7)从根结点到某个子结点所经过的结点称为这个子结点的祖先
  • (8)对于树中任意两个结点,如果从一个结点出发,沿着整个树自上而下能够达到另一个结点,称它们之间存在一条路径。路径长度=路径中包含的结点数-1
  • (9)从根结点出发,到树中其余结点,一定存在一条路径
  • (10)一个树中,不同子树之间不存在路径
  • (11)一个森林(forest): m棵(m>=0)互不相交的树的集合
  • (12)层次:定义根结点的层次为1,其余结点的层次等于它的父结点的层次+1。比如,上面的图中,结点8的层次为4
  • (12)深度:一棵树中,所有结点的层次的最大值称为这个树的深度(depth)。比如,上图中,树的深度为3

二叉树基本概念和性质
image

OI中常考的就是二叉树,因为它很特殊
特殊原因:二叉树是一个度为2的数 二叉树的每个结点最多有两个子结点
每个结点的子结点叫做左子树和右子树

性质

  1. 二叉树的第i层最多有2i −1个结点
    2.深度为k的二叉树至多有 2 k − 1 个结点
  2. 一棵深度为k且有 2 k − 1 个结点的二叉树称为满二叉树
    image
    4.完全二叉树 深度为k, 有n个结点的二叉树,当且仅当每一个结点都与深度为k的慢二叉树中编号从1~n的结点一一对应。完全二叉树的叶子结点仅出现在最下层和次下层,且最下层叶子集中在左部
    image
    5.对于任意一个二叉树 如果其叶结点数为n0, 度为2的结点数为n2,则一定满足 n0=n2+1;
    证明:
    假设二叉树有n个结点,n0个叶结点,n2个度为2的结点,则有(n-n0-n2)个度为1的结点。因为一个二叉树有n-1条边,所以
    n-1=n00+n22+(n-n0-n2)1
    n-1=n2
    2+n-n0-n2
    n0=n2+1
    6.对于一个有n个结点的完全二叉树,深度为[log2n]+1
posted @ 2025-09-14 11:35  polyoid  阅读(27)  评论(0)    收藏  举报