数据结构之数&&二叉树(一)

1 树的概念

1.1 树的定义

树是n (n≥0) 个结点的有限集合。

  • 若 n = 0,称为空树。
  • 非空树满足:
    1. 有且仅有一个特定的称为**根(Root)**的结点;
    2. 除根结点以外的其余结点可以划分为 m (m≥0) 个互不相交的有限集合 \(T_1,T_2,...,T_m\),其中每一个集合本身又是一棵树,称为根的子树 (SubTree)。

递归定义:树由根 + 若干棵互不相交子树构成。 通俗理解:没有环、连通、分层的图结构。

1.2 基本术语

1.2.1 结点间的关系描述
  • 父结点(双亲结点):一个结点的子树的根叫该结点的孩子;该结点就是孩子的父结点。
  • 孩子结点:某个结点子树的根。
  • 兄弟结点:同一个父结点的多个孩子互为兄弟。
  • 祖先结点:从根到该结点路径上所有结点,都是该结点的祖先。
  • 子孙结点:一个结点的所有子树中的全部结点,都是它的子孙。
1.2.2 结点和树之间的属性描述
  • 结点的度 :结点拥有的子树个数。
  • 树的度:树内各结点的度的最大值。
  • 叶子结点(终端结点):度为 0 的结点,没有孩子。
  • 分支结点(非终端结点):度大于 0 的结点。
  • 结点的层次:根为第 1 层;根的孩子第 2 层,以此向下递推。
  • 树的高度 / 深度:树中结点的最大层次。

1.3 树的性质

1.3.1 性质一:树中的结点数 = 所有结点的度数之和 + 1
1.3.2 性质二:m 叉树中第 i 层上至多有? 个结点
1.3.3 性质三:高度为 h 的 m 叉树至多有 ? 个结点

相关推荐
学逆向的5 小时前
C 循环结构的执行效率分析
c语言·开发语言·数据结构·网络安全
jeo陽9 小时前
04-循环实战:素数、最大公约数、级数求和与枚举法
c语言·开发语言·数据结构
slandarer10 小时前
MATLAB | 趣味编程——动态字符串甜甜圈和爱心
数据结构·matlab·趣味编程
UIU11411 小时前
P1003 [NOIP 2011 提高组] 铺地毯
数据结构·c++·算法
爱读书的小胖11 小时前
LeetCode 88. 合并两个有序数组 C 解题分析
c语言·数据结构·算法
inrichtt11 小时前
第七课时:STM32时钟系统揭秘:从零理解时钟树
c语言·数据结构·stm32·单片机·嵌入式硬件
xxwl58512 小时前
区域赛算法模版第四章---数据结构
数据结构·c++·算法
Logic10113 小时前
C语言/数据结构二维数组题解:找出行列O个数均为偶数的格子——奇偶性预处理+二次遍历
c语言·数据结构·算法·二维数组·时间复杂度·动态内存分配·奇偶性
垆边人似月.14 小时前
移动长度 k 子串使字符串变成回文
数据结构·算法
David猪大卫14 小时前
【C++修炼】string类:string类的模拟实现
c语言·开发语言·数据结构·c++·经验分享·笔记·学习