前面已经说到,二叉树使用及其广泛,现在就来说一下:
在这里先进行声明:这里所有树的结点完全没有指向父亲结点的指针,唐老师没有指名原因,但是他后面的一句话,感觉应该是他的原因,那就是做出二叉树,也是为了节省空间,所以就没有在树节点里包含指向父亲结点的指针。
首先是二叉树的定义:二叉树是由 n 个结点组成的有限集合 ,该集合或者为空 ,或者是由一个根结点加上两棵分别称为左子树和右子树的互不相交的二叉树组成。
然后二叉树又分为:满二叉树和完全二叉树;
满二叉树:如果二叉树中所有分支结点的度数都为2 ,且叶子结点都在同一层次上 ,则称这类二叉树为满二叉树;
完全二叉树:如果一棵具有n个结点的高度为k的二叉树,它的每一个结点都与高度为k 的满二叉树中编号为1 —n 的结点一一对应,则称这棵二叉树为完全二叉树。(从上到下从左到右编号)
有一些常识一定要记住,因为一些公司经常会考这些题目:
1:同样结点数的二叉树,完全二叉树的高度最低;
2:在二叉树的第i层最多有个结点。(i>1);
3:深度为k的二叉树最多有个结点。(k > 0);
4:对任何一棵二叉树,如果其叶结点有n0个,度为2的非叶结点有n2个,则有n0 = n2 +1;
5:
6: