一、树的定义
线性结构是一对一关系,那么一对多关系的需要用什么处理呢?这就引入了一种特殊的数据结构,——“树”
强调:
- n>0时候根结点是唯一的,不可能存在多个根结点,这个和现实中的大树不一样,数据结构一个树只能有一个根结点。
- m>0时,子树的个数没有限制,但它们一定是不互相交互的。例如下图中的结构就不符合树的定义,所以它们不是树。
二、什么是树的结点?
结点间的关系可分为兄弟结点、双亲结点、孩子结点。。。。。看图
三、树的其他概念
结点的层次从根节点开始定义起,根为第一层,根的孩子为第二层。。。。。。。。树中结点的最大层次称为树的深度或者高度。其双亲在同一层的结点称为堂兄弟结点。
注意!!! 树的度和树的深度不是一个概念,一个是结点拥有的子树个数,一个是树的最大层次,还有就是堂兄弟结点和兄弟结点不一样,这两个容易混淆。
四、什么是有序树和无序树,什么是森林?
- 如果将树中结点的各个子树看成从左至右是有次序的,不能互换的。则称为树是有序树,反之,就叫无序树
- 森林就是m(m>=0)个互不相交的树的集合,对树中的每个结点而言,其子树的集合就是森林。