1 树的基本概念 根 + 子树
基本 组成是 树的基本信息 还有 人类的亲属关系
树是一种非线性的数据结构,由节点(Node)和边(Edge)组成。每个节点包含数据,并通过边与其他节点相连。树具有层次结构,最顶层的节点称为根节点(Root),没有子节点的节点称为叶节点(Leaf)。
节点的度 :子树的个数 或者孩子节点个数

简单来看就是 该节点的分叉数

特别区分
树的度 树中节点最大的度数 分支最多的数目
至少有棵子树 的度数 是 m
就是 MAX
子树(Subtree):树中任意节点及其后代构成的子结构。
注意 子树 可以理解为孩子 而且单独的一个节点 也是子树
子树 子集 之间是不可以相交的 不能成环
2
树的术语
根节点(Root):树的顶层节点,没有父节点。 只有一个
树根嘛 就是最底部 最开始的地方 抽象出来的数据结构是 一棵 倒过来的树
3 相对的关系 亲属关系
父节点(Parent)(双亲节点) :一个节点的直接上层节点。
就是 子树的根 比方说 B是A的父节点 

理解 就是 从叶节点开始 每个节点都有一个向上的 边 但是 根节点 是没有的就是 N -1
子节点(Child)(孩子节点):一个节点的直接下层节点。

相反 A就是B的子节点
兄弟节点 :具有相同的父节点的节点 E,F


叶节点(Leaf)(终端节点) :没有子节点的节点,度为0的节点。如E,K,G,L,M,I,J等
就是说没有孩子,就是在最下面的底部的那些 。
分支节点 (非终端节点) : 度不为0的节点。 那些中间的节点 F H等等
祖先节点 就是
该节点的父亲 到 爷爷 最后 到根 路径上的 每个父亲节点都是
该节点的祖先节点 相反 的那个节点就是
子孙节点


4
深度(Depth):从根节点到当前节点的路径长度。
公式总结
设:从根到最远叶子的路径边数为 e
树的深度=e+1 也就是 等于 最大层数
高度(Height):从当前节点到最远叶节点的路径长度。
树的高度 就是 根节点的 高度
层数 : 下面 是两种 相对的定义方式 只要在具体的实现时
树的层数 = 整棵树最大的节点层数。
逻辑自洽 步混淆 都是可以的
但是 推荐使用 将根节点 视作第一层的 那种

有节点时 就是第一层 空树 就是 0 这是大众的定义 建议
另一种 就是 把第一个节点 定义为 第0层
这是相对的关系 一般就是从以1开始

重点 区分是 整棵 树 和 某一节点
若根记为第 0 层:三者依然数值相等,只是整体数值都减 1。
单个节点的深度和高度不一定相等:
比如中间节点,深度是它离根的距离,高度是它离叶子的距离,二者通常不同;
但整棵树的高度 == 深度 == 层数 永远相等。
对于单独的一个节点来说
重点 就可以看作 以该节点为根节点的子树 来看 是可以的
1 高度 就是 从下往上数 这是第几个 从0开始数
也就是 该节点所在子树的层数
统一了这不就 转换为了树的高度啦
2 深度 就是 从海面往下数 从上到下的
就是 该节点所在的****层数
举个例子八 
1 树的 高度 == 深度 == 层数 是 4
2 B 节点的深度是 2 第二层嘛
3 B 节点 的 高度是 3
B 子树 就是三层嘛
4 A节点的度 是 3 分叉数
A是根节点 所以树的度 也是 3
5 D节点的度 是 3 H节点的度是 2
M叉树 和 度为M的树
M叉树 只对 该树 最大的节点树 做了要求 或者 限制
而 度为m 则需要 有一个底线 就是 最少 都得有 这么 一个子树的节点的度数 是M

路径 注意 是从上到下



加上一个共同的 根节点 就把 一片森林 转化为了 一棵树
M 颗子树 构成的集合 就是 森林 多棵树 不相交 (并查集 )
---------------------------------------------------------------------------------------------
重点 概要
节点的度 父节点 子节点 叶节点 祖先节点
你可以用自己的话 讲解出来了吗?
树 的定义 
用递归 定义 的
任意 一棵树 都是如此 的

递归 简单理解是 拆解为 一件事 套娃
但是 最终 不可继续 套 或者 结束条件

绝对 不可以相交 子树 之间 不然就是 图 、
左孩子 右边兄弟的表示 方式 (天才之作)
三块区 第一个数据 后两个就是两个指针

理解为每一层的左边第一个节点就是 左边child 节点
接下来形式上 就是以该节点为头节点的 链表
最后的兄弟指针 都指向空 NULL

重点 发现
child 指向的是下一层的节点
brother 指向同一层 右边的节点 兄弟节点
指针本身存的是整个节点的地址,
只是人为规定了:
👉 child 用来找自己的大儿子,
brother 用来找旁边的亲兄弟。
指针只负责记录位置,语义用来定义关系。
地址 = 节点的位置;
child / brother = 节点之间的亲属关系。
类似的看作一颗目录树的结构

