Loading docs/graph/tree-basic.md +23 −23 Original line number Diff line number Diff line Loading @@ -14,60 +14,60 @@ ### 适用于无根树和有根树 **森林(forest)**: 每个连通分量(连通块)都是树的图。按照定义,一棵树也是森林。 - **森林(forest)**:每个连通分量(连通块)都是树的图。按照定义,一棵树也是森林。 **生成树(spanning tree)**: 一个连通无向图的生成子图,同时要求是树。也即在图的边集中选择 $n - 1$ 条,将所有顶点连通。 - **生成树(spanning tree)**:一个连通无向图的生成子图,同时要求是树。也即在图的边集中选择 $n - 1$ 条,将所有顶点连通。 **结点的深度(depth)**: 到根结点的路径上的边数。 - **结点的深度(depth)**:到根结点的路径上的边数。 **树的高度(height)**: 所有结点的深度的最大值。 - **树的高度(height)**:所有结点的深度的最大值。 **无根树的叶结点(leaf node)**: 度数不超过 $1$ 的结点。 - **无根树的叶结点(leaf node)**:度数不超过 $1$ 的结点。 ??? question " 为什么不是度数恰为 $1$ ?" ???+question " 为什么不是度数恰为 $1$ ?" 考虑 $n = 1$ 。 **有根树的叶结点(leaf node)**: 没有子结点的结点。 - **有根树的叶结点(leaf node)**:没有子结点的结点。 ### 只适用于有根树 **父亲(parent node)**: 对于除根以外的每个结点,定义为从该结点到根路径上的第二个结点。 - **父亲(parent node)**:对于除根以外的每个结点,定义为从该结点到根路径上的第二个结点。 根结点没有父结点。 **祖先(ancestor)**: 一个结点到根结点的路径上,除了它本身外的结点。 - **祖先(ancestor)**:一个结点到根结点的路径上,除了它本身外的结点。 根结点的祖先集合为空。 **子结点(child node)**: 如果 $u$ 是 $v$ 的父亲,那么 $v$ 是 $u$ 的子结点。 - **子结点(child node)**:如果 $u$ 是 $v$ 的父亲,那么 $v$ 是 $u$ 的子结点。 子结点的顺序一般不加以区分,二叉树是一个例外。 **兄弟(sibling)**: 同一个父亲的多个子结点互为兄弟。 - **兄弟(sibling)**:同一个父亲的多个子结点互为兄弟。 **后代(descendant)**: 子结点和子结点的后代。 - **后代(descendant)**:子结点和子结点的后代。 或者理解成:如果 $u$ 是 $v$ 的祖先,那么 $v$ 是 $u$ 的后代。 **子树(subtree)**: 删掉与父亲相连的边后,该结点所在的子图。 - **子树(subtree)**:删掉与父亲相连的边后,该结点所在的子图。  ## 特殊的树 **链(chain/path graph)**: 满足与任一结点相连的边不超过 $2$ 条的树称为链。 - **链(chain/path graph)**:满足与任一结点相连的边不超过 $2$ 条的树称为链。 **菊花/星星(star)**: 满足存在 $u$ 使得所有除 $u$ 以外结点均与 $u$ 相连的树称为菊花。 - **菊花/星星(star)**:满足存在 $u$ 使得所有除 $u$ 以外结点均与 $u$ 相连的树称为菊花。 **有根二叉树(rooted binary tree)**: 每个结点最多只有两个儿子(子结点)的有根树称为二叉树。常常对两个子结点的顺序加以区分,分别称之为左子结点和右子结点。 - **有根二叉树(rooted binary tree)**:每个结点最多只有两个儿子(子结点)的有根树称为二叉树。常常对两个子结点的顺序加以区分,分别称之为左子结点和右子结点。 大多数情况下,**二叉树**一词均指有根二叉树。  **完整二叉树(full / proper binary tree)**: 每个结点的子结点数量均为 0 或者 2 的二叉树。换言之,每个结点或者是树叶,或者左右子树均非空。 - **完整二叉树(full / proper binary tree)**:每个结点的子结点数量均为 0 或者 2 的二叉树。换言之,每个结点或者是树叶,或者左右子树均非空。 **完全二叉树(complete binary tree)**: 只有最下面两层结点的度数可以小于 2,且最下面一层的结点都集中在该层最左边的连续位置上。 - **完全二叉树(complete binary tree)**:只有最下面两层结点的度数可以小于 2,且最下面一层的结点都集中在该层最左边的连续位置上。 **完美二叉树(perfect binary tree)**: 所有叶结点的深度均相同的二叉树称为满二叉树。 - **完美二叉树(perfect binary tree)**:所有叶结点的深度均相同的二叉树称为完美二叉树。 ??? warning 完全二叉树和满二叉树的定义在不同教材中定义不同,遇到的时候需根据上下文加以判断。 ???+warning Proper binary tree 的汉译名称不固定,且完全二叉树和满二叉树的定义在不同教材中定义不同,遇到的时候需根据上下文加以判断。 OIers 所说的“满二叉树”多指完美二叉树。 ## 存储 Loading Loading
docs/graph/tree-basic.md +23 −23 Original line number Diff line number Diff line Loading @@ -14,60 +14,60 @@ ### 适用于无根树和有根树 **森林(forest)**: 每个连通分量(连通块)都是树的图。按照定义,一棵树也是森林。 - **森林(forest)**:每个连通分量(连通块)都是树的图。按照定义,一棵树也是森林。 **生成树(spanning tree)**: 一个连通无向图的生成子图,同时要求是树。也即在图的边集中选择 $n - 1$ 条,将所有顶点连通。 - **生成树(spanning tree)**:一个连通无向图的生成子图,同时要求是树。也即在图的边集中选择 $n - 1$ 条,将所有顶点连通。 **结点的深度(depth)**: 到根结点的路径上的边数。 - **结点的深度(depth)**:到根结点的路径上的边数。 **树的高度(height)**: 所有结点的深度的最大值。 - **树的高度(height)**:所有结点的深度的最大值。 **无根树的叶结点(leaf node)**: 度数不超过 $1$ 的结点。 - **无根树的叶结点(leaf node)**:度数不超过 $1$ 的结点。 ??? question " 为什么不是度数恰为 $1$ ?" ???+question " 为什么不是度数恰为 $1$ ?" 考虑 $n = 1$ 。 **有根树的叶结点(leaf node)**: 没有子结点的结点。 - **有根树的叶结点(leaf node)**:没有子结点的结点。 ### 只适用于有根树 **父亲(parent node)**: 对于除根以外的每个结点,定义为从该结点到根路径上的第二个结点。 - **父亲(parent node)**:对于除根以外的每个结点,定义为从该结点到根路径上的第二个结点。 根结点没有父结点。 **祖先(ancestor)**: 一个结点到根结点的路径上,除了它本身外的结点。 - **祖先(ancestor)**:一个结点到根结点的路径上,除了它本身外的结点。 根结点的祖先集合为空。 **子结点(child node)**: 如果 $u$ 是 $v$ 的父亲,那么 $v$ 是 $u$ 的子结点。 - **子结点(child node)**:如果 $u$ 是 $v$ 的父亲,那么 $v$ 是 $u$ 的子结点。 子结点的顺序一般不加以区分,二叉树是一个例外。 **兄弟(sibling)**: 同一个父亲的多个子结点互为兄弟。 - **兄弟(sibling)**:同一个父亲的多个子结点互为兄弟。 **后代(descendant)**: 子结点和子结点的后代。 - **后代(descendant)**:子结点和子结点的后代。 或者理解成:如果 $u$ 是 $v$ 的祖先,那么 $v$ 是 $u$ 的后代。 **子树(subtree)**: 删掉与父亲相连的边后,该结点所在的子图。 - **子树(subtree)**:删掉与父亲相连的边后,该结点所在的子图。  ## 特殊的树 **链(chain/path graph)**: 满足与任一结点相连的边不超过 $2$ 条的树称为链。 - **链(chain/path graph)**:满足与任一结点相连的边不超过 $2$ 条的树称为链。 **菊花/星星(star)**: 满足存在 $u$ 使得所有除 $u$ 以外结点均与 $u$ 相连的树称为菊花。 - **菊花/星星(star)**:满足存在 $u$ 使得所有除 $u$ 以外结点均与 $u$ 相连的树称为菊花。 **有根二叉树(rooted binary tree)**: 每个结点最多只有两个儿子(子结点)的有根树称为二叉树。常常对两个子结点的顺序加以区分,分别称之为左子结点和右子结点。 - **有根二叉树(rooted binary tree)**:每个结点最多只有两个儿子(子结点)的有根树称为二叉树。常常对两个子结点的顺序加以区分,分别称之为左子结点和右子结点。 大多数情况下,**二叉树**一词均指有根二叉树。  **完整二叉树(full / proper binary tree)**: 每个结点的子结点数量均为 0 或者 2 的二叉树。换言之,每个结点或者是树叶,或者左右子树均非空。 - **完整二叉树(full / proper binary tree)**:每个结点的子结点数量均为 0 或者 2 的二叉树。换言之,每个结点或者是树叶,或者左右子树均非空。 **完全二叉树(complete binary tree)**: 只有最下面两层结点的度数可以小于 2,且最下面一层的结点都集中在该层最左边的连续位置上。 - **完全二叉树(complete binary tree)**:只有最下面两层结点的度数可以小于 2,且最下面一层的结点都集中在该层最左边的连续位置上。 **完美二叉树(perfect binary tree)**: 所有叶结点的深度均相同的二叉树称为满二叉树。 - **完美二叉树(perfect binary tree)**:所有叶结点的深度均相同的二叉树称为完美二叉树。 ??? warning 完全二叉树和满二叉树的定义在不同教材中定义不同,遇到的时候需根据上下文加以判断。 ???+warning Proper binary tree 的汉译名称不固定,且完全二叉树和满二叉树的定义在不同教材中定义不同,遇到的时候需根据上下文加以判断。 OIers 所说的“满二叉树”多指完美二叉树。 ## 存储 Loading