树:它是由n(n≥1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。
树中的专有名词
就用这张图来描述树的特征:
- 当n=0,就称为空树
- 有且只有一个称为根的结点,这里为A
- 当n>1时,其余结点可以分为m(m>0)个互不相交的有限集,其中每个集合又是一棵树,称为子树
- 举个例子:
是以B为结点的子树
下面我们来将结点分一下类:
- 树的结点包含一个数据结构及若干指向其子树的分支
- 结点拥有的子树称为结点的度
- 度为0的结点称为叶结点或终端结点
- 度不为0的结点称为非终端结点或分支结点
结点的关系:
这块有点像我们的家庭关系,比较好理解
A为B,C的双亲,B,C互为兄弟,对于#来说,D,B,A,都是它的祖先,反之A的子孙有B,D,#
其他相关概念,特定情况才会用到
引入了深度,可以说是有几层就有多少深度.
无序树:如果将树中结点的各子树看成从左到右都是没有次序,都可以随意互换,则称为无序树,反之为有序树
树中的基本操作
双亲表示法
树真的太像人了,人可能暂时没有孩子但是一定有且只有一个父母,树也一样除了根结点外,其余每个结点,它不一定有孩子,但是一定有且只有一个双亲