1.无根树
无根树的等价形式定义形式有以下几种:
+有n个节点 n-1条边的联通无向图
+无向无环的连通图
+任意两个节点之间有且仅有一条简单路径的无向图
+任何边均为桥的连通图
+没有圈且在任意不同两点之间加上一条边后所得图含有唯一一个圈的图
圈指的是任选一个顶点为起点,沿着不重复的边,经过不重复的顶点为途径,之后又回到起点的闭合途径称为圈。
在无根树的基础上指定一个节点成为根,形成一颗有根树,有根树在很多时候仍然以无向图来表示,只是规定了上下级之间的关系。
有关树的性质的一些定义:
+森林(forest) 每个连通分量都是树的图,暗示找定义,一棵树也是森林
+生成树(spining tree)是一个无向联通图的生成子图,要求是树型,也就是说在图的边集合中选择n-1条边,使得n 个节点联通的图叫做图的一个生成树。
+无根树的叶结点(leaf node): 一般指度数不超过一的结点,当一个图中只有一个点时比较特殊,没有边,度数都是0,但存在叶结点。
有根树的叶结点:没有子结点的结点。
适用于有根树的一些定义:
父亲(parent node):对于除根以外的每个结点,定义为该节点到路径上第二个结点(简单记成上一个结点),根结点没有父结点。
祖先(ancestor):一个节点岛根节点的路径上除了自身以外的结点,根结点的祖先集合为空。
子节点(child node):u是v 的父结点那么v 就是 u 的子节点,子结点的顺序一般不加以区分,二叉树除外。
结点的深度(depth)到达根结点的路径的边数;
树的高度 : 所有结点深度的最大值。
兄弟(sibling)同一个父亲的多个字节点互为兄弟。
后代:(descendant) 子结点和结点的后代
子树(subtree):删掉与父亲相连的边后,改结点所在的子图。
特殊的树:
+链(path graph/chain)满足与任意结点相连的边不超过两条的树称为链
+菊花/星星(star) 满足存在u 使得所有除了u 以外结点均与u相连的树称为菊花。
+有根二叉树(rooted binary tree)每个结点最多只有两个儿子的有根树叫做二叉树。常常对二叉树的两个字节点进行区分,分别叫做左子结点和右子结点,大多数情况二叉树指的是又跟二叉树。
+完整二叉树(full /proper binary tree)(看的是结点)
每个结点的子节点数量均为0或2 的二叉树,换言之,每个节点都是树叶,或者左右子树都非空。
完全二叉树(complete binary tree )(看的是每一层):
只有最下面两层结点的度数可以小于2,且最下面两层的结点都集中在最左边的连续位置上。
完美二叉树:(perfect binary tree) 所有叶子节点的度数都相同的二叉树叫做完美二叉树,又叫满二叉树。