一.树的概念
什么是树?树的英文名是tree,我们生活中看到的大树与我们今天讲的树有相似之处,但并不是同一个东西,我们在讲数据结构里面的树是一种存储数据的一种结构,我可以用树状方式讲数据给存储起来,当然我们生活中的树是根在下,而我们所讲的树结构是根在上,也有类似树一样的分支,树叶一样的组成成分。大致如下图所示:
左边是生活中的树,右边是我们要介绍的树。
1.什么是树?什么是二叉树?
树:是有层次关系n(n>=0)个节点的有限集合。
什么叫有层次?
就是有长辈父辈之分的一种层级关系。如上图所示;
那么我们规定空树的n为0;
那么我们也规定非空树有且仅有一个节点。
那什么又是节点呢?
A,B,C,D.....代表的就是节点,节点也有分类,有根节点,分支节点,叶子节点,前驱(父节点),后继(子节点)。
还是以上图介绍为例:
这个为根节点,也是父节点。
这些都是分支节点,也就是说到我这个节点的时候我要分开了,就叫分支节点。
像这样不在继续向下延续的节点就称之为叶子节点,就像叶子一样露在外面,只剩下叶子,不在继续延续。
对于前驱和后继两个词就非常好理解,就比如说ABC,B的前驱是A,后继是C;
当然树也有有序树和无序树之分。这个主要是依据节点的摆放位置而定;
生活中有序的比较多,所以研究有序居多;
几叉树的命名依据所有树中最多子节点的那个命名;
二.树的性质
1.树的性质有哪些?
1.节点数=总度数+1,节点的度=节点孩子(分支)的个数,这里要注意一下,不包含父节点个数的。
2.度为m的树:各个节点度的最大值为m,任意节点的度小于等于m,至少有一个节点的度等于m。
3.m叉树的区别:每个节点最多有m个孩子,任意节点的度小于等于m,允许所有节点的度都小于m。
4.度为m的树(m叉树),第i层至多有m的(i-1)次方个节点i要>=1。
5.高度为h的m叉树至多(m^h-1)/(m-1)个节点,这个结果的推导主要是用到等比数列的求和,如下图所示:
还有高度为h的m叉树至少有h个节点,高度为h,度为m的树至少有h+m-1个节点;
6.有n个节点的m叉树最小高度为:所有的节点都有m个孩子:
性质6的推导如图:
以上就是树的概念以及基本性质;