树是什么:想象一下,树就像一个家庭树,有一个最顶端的“家长”(根结点),然后下面有孩子,孩子们下面还有孩子,这样一层一层地排下去。
根结点:就是这个家庭的“家长”,没有比它更上面的了。
结点:就是家里的成员,除了家长,每个成员都有一个直接的“上一代”(双亲)。
空树:如果家里一个人都没有,那就是空树。
祖先和子孙:如果你往上数,从你到家长的那条线上的所有人都是你的祖先;如果你往下看,你的孩子们就是你的子孙。
双亲和孩子:每个成员都有一个直接的“上一代”(双亲),而他们就是这个双亲的孩子。
兄弟:就是同一个“上一代”生的孩子,比如你和你姐姐、哥哥是兄弟。
结点的度:就是这个成员下面有多少孩子。
分支结点和叶子结点:如果一个成员有孩子,他就是分支结点;如果他没有孩子,那就是叶子结点。
结点的层次和深度:就像你数楼层一样,从最上面的家长开始数,家长是第一层,下面的每一层就是层次;而深度是从最下面的叶子开始数,向上数到家长。
树的高度:就是这个家庭树最下面的叶子到最上面的家长有多少层。
有序树和无序树:如果家里的成员站队时,谁站前面谁站后面是有规定的,那就是有序树;如果随便站,那就是无序树。
路径和路径长度:就是从家里一个成员到另一个成员的路线,路线上的成员数量就是路径长度。
森林:就是很多个这样的家庭树放在一起,但它们之间没有关系。
树的性质:比如家里的总人数就是每个人下面的孩子数加起来再加1。
m叉树:就是规定了每个成员最多只能有多少个孩子的家庭树。
知识点链接
树的定义
树 是一种逻辑结构,也是一种分层结构。
根结点:树的顶端结点,没有前驱。
结点:树中的元素,除根结点外,每个结点都有一个前驱(即双亲)。
空树:没有结点的树。
基本术语
祖先:从根到特定结点K的唯一路径上的任意结点。
子孙:如果结点B是结点K的祖先,则K是B的子孙。
双亲和孩子:在路径上最接近结点K的结点E是K的双亲,K是E的孩子。
兄弟:有相同双亲的结点。
结点的度:一个结点的孩子数目,树的最大度数称为树的度。
分支结点:度大于0的结点。
叶子结点:度为0的结点。
结点的层次:从根开始定义,根为第1层。
结点的深度:从根结点开始自顶向下逐层累加。
结点的高度:从叶结点开始自底向上逐层累加。
树的高度(或深度):树中结点的最大层数。
有序树和无序树:子树从左到右有次序的为有序树,无次序的为无序树。
路径和路径长度:两个结点之间的路径由经过的结点序列构成,路径长度是边的数目。
森林:n棵互不相交的树的集合。
树的性质
结点数 = 所有结点的度数之和 + 1。
度为m的树,第i层上至多有m^{i-1}个结点(i≥1)。
高度为h的m叉树至少有h个结点,至多有m^h - 1个结点。
具有n个结点的m叉树的最小高度为\log_m(n)。
m叉树
定义:每个结点最多只能有m个孩子的树。
特性:
任意结点的度 ≤ m。
至少有一个结点度 = m(有m个孩子)。
一定是非空树,至少有m+1个结点。