写一个博文,比较总结树和二叉树的相关知识。( 建议从知识点角度和应用角度两个方面各陈述。)
1.什么是(*)树?
树首先是无向图的一种,并且此无向图要满足下面两个特性:
1)连通,即任何两对顶点之间都有路径相连。
2)无回路,简单地说就是没有成环。
2.什么是森林?
当满足树特性2)而不满足1)时称为森林。可以简单地理解为,什么不满足连通性,所以森林中可含有多个(*)树。
3.树的特性
假设G = (V, E)是一个无向图,则下面的定义中等价的:
1)G是(*)树。
2)G中任意两顶点之间有唯一一条简单路径。
3)G是连通的,当从E中去掉何意一条边时,将会变成非连通的。
4)G是连通的,且|E|= |V| - 1。
5)G是无回路的,且|E|= |V| - 1。
6)G是无回路的,但添加何意一条边后将有回路出现。
4.树中的一些基本概念总结:
1)祖先/子孙:从树中的一个指定结点x到根结点r的唯一路径上的所有结点都是x的祖先;x为它们的子孙。
注:每个结点都是自己本身的祖先和子孙。
2)真祖先/真子孙:根据1)中的定义,除了自己外,就有了真祖先/真子孙的概念。
3)父结点/子结点:从根结点到指定的x结点唯一路径中最后一条边是(y,x),则y是x的父结点,x是y的子结点。
4)兄弟:如果两个结点的父结点相同,则称这个两个结点为兄弟。
5)叶子结点/内部结点:没有子结点为叶子结点,非叶子结点为内部结点。
6)度:结点的子结点个数称为度。
7)深度:从根结点到指定结点的长度。
8)高度:从结点向下到某个结点最长简单路径中边的条数。树的高度是根高度,也是树中结点的最大深度。
5.什么是有序树?
即,子结点有序的有根树。
6.二叉树与树的区别?
1)树中结点的最大度数没有限制,而二叉树结点的最大度数为2;
2)树的结点无左、右之分,而二叉树的结点有左、右之分。
7.什么是完全二叉树?
若设二叉树的高度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层有叶子结点,并且叶子结点都是从左到右依次排布。
8.什么是满二叉树?
除了叶结点外每一个结点都有左右子结点且叶子结点都处在最底层的二叉树。
9.二叉树的性质:
1) 在二叉树中,第i层的结点总数不超过2^(i-1);
2) 深度为h的二叉树最多有2^h-1个结点(h>=1),最少有h个结点;
3) 对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总数为N2,则N0=N2+1;
4) 具有n个结点的完全二叉树的深度为int(log2n)+1
5)给定N个节点,能构成h(N)种不同的二叉树。h(N)为卡特兰数的第N项。h(n)=C(n,2*n)/(n+1)。二叉树就是说一个结点下面可能有两个子结点(度为2),也可能有一个子结点(度为1),或者没有子结点(度为0,也叫叶子结点)