首页 > 代码库 > 树(预备知识)

树(预备知识)

现实眼中的树是:

                      技术分享

这个样子的,而程序员眼中的树是:

                                                    1.技术分享

                                              2.技术分享

                                               3.技术分享

是一种结构数据,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。我个人认为它也很像家族图谱,好了再继续说树吧。它具有以下的特点:
每个节点有零个或多个子节点;
没有父节点的节点称为根节点;
每一个非根节点有且只有一个父节点;
除了根节点外,每个子节点可以分为多个不相交的子树。 
第一个树1.的节点“圆”是根,下面的三个矩形都分别有一条边连接着它的父亲(根)。
第三个树3.中1的节点是跟,2,3,4都有共同的父亲1,其中3还有一个儿子5。每一个节点可以有许多儿子,也可以一个都没有,一个都没有儿子的都统称为“树叶”,1可以说是5的爷爷,,它俩是祖孙关系。
对任意节点ni,ni的深度为从根到ni的唯一的路径长,所以,根的深度为0。ni的高是从ni到一片树叶的最长路径的长看,就拿3.树来说,‘3’的深度为1高度为1;‘2’的深度为1高度为0;‘4‘的深度为1,高度为0;5的深度为2高度为0。所以这树高度为2。一棵树的深度等于它的最深的树叶的深度,深度总是等于它的高。

树(预备知识)