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

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 叉树至多有 ? 个结点

相关推荐
白狐_7981 小时前
408 数据结构|KMP算法核心:为什么不用主串回退
数据结构·算法
努力努力再努力wz1 小时前
【Docker入门系列】:从架构演进到容器化:一文建立 Docker、虚拟化与 Namespace 的底层心智模型
运维·开发语言·数据结构·c++·docker·容器·架构
白狐_7981 小时前
408 数据结构|红黑树 vs AVL:高频考点、易错判断与可能出题方式
数据结构·算法
青山木15 小时前
Hot 100 --- 数组中的第K个最大元素
java·数据结构·算法·排序算法
wuyk55517 小时前
12.归并排序:分治思想的稳定排序算法
开发语言·数据结构·算法·排序算法
Chester_199920 小时前
CSP202312C.树上搜索
开发语言·数据结构·c++·蓝桥杯·stl
专注仿真21 小时前
RabbitMQ消息队列实战项目
数据结构·rabbitmq
血小板要健康1 天前
队列 + 宽搜(BFS):二叉树层序遍历 算法总结
java·数据结构·笔记·算法·leetcode·宽度优先
Felven1 天前
B. Deja Vu
数据结构·算法