数据结构(一)-----二叉树

一、二叉树简介

1、二叉树简介

二叉树是由n(n>=0)个结点组成的有序集合,集合或者为空,或者是由一个根节点加上两棵分别称为左子树和右子树的、互不相交的二叉树组成。

性质一:对于任何一棵二叉树T,若叶子节点数为n0,度数为2的节点数为n2,则n0=n2+1

   假设二叉树节点总数为n,度数为1的节点个数为n1,则n=n0+n1+n2成立,除根节点外,其它节点通过一条树枝且仅通过一条树枝与其父节点相连,而二叉树中树枝总数为n1+2*n2,加上根节点后可得总结点数为n=n1+2*n2+1,所以n0=n2+1

3、满二叉树

如果二叉树中所有分支结点的度数都为2,并且最后一层的叶子节点(叶子节点是指没有儿子节点)都存在,则二叉树为满二叉树。


数据结构(十四)——二叉树

4、完全二叉树

如果一棵具有n个结点的高度为k的二叉树,扣除最后一层后的树是满二叉树且层次最大的那层所有叶子节点均向左靠齐,则二叉树为完全二叉树。
完全二叉树的特性:
A、同样结点数的二叉树,完全二叉树的高度最小
B、完全二叉树的叶子结点仅出现在最下边两层,并且最底层的叶子结点一定出现在左边,倒数第二层的叶子结点一定出现在右边。
C、完全二叉树中度为1的结点只有左孩子。

D。完全二叉树中节点度数为1的节点数最多为1


数据结构(十四)——二叉树

扫描二维码关注公众号,回复: 4732076 查看本文章

 题目一:若有一棵完全二叉树有1000个节点,请问叶子节点数?度数为2的节点数?度数为1节点数?

      首先有n=n0+n1+n2,且n0=n2+1;  n=n1+2*n2+1=1000,因为为完全二叉树,所以可以推出度数为1的节点数最多为1,钦此我们可以推出只有当n1=1,n=n1+2*n2+1=1000才合理,故得n0=500,n2=499,n1=1

题目二:一棵树,度数为1节点数有4,度数为2节点数有3,度数为3节点数有2,度数为4节点数有1,求叶子节点数

      可以根据1*4+2*3+3*2+4*1+1=4+3+2+1+n0->n0=10

5、二叉树的特性 (根节点为第一层)

A、在二叉树的第i层上最多有2^(i-1)个结点(i>=1)。
B、高度为k的二叉树,最多有2^k-1个结点(k>=0)。
C、对任何一棵二叉树,如果其叶结点有n个,度为2的非叶子结点有m个,则
n = m + 1。
D、具有n个结点的完全二叉树的高度为logn + 1
E、对于有n个结点的完全二叉树,按层次对结点进行编号(从上到下,从左到右),对于任意编号为i的结点:

猜你喜欢

转载自blog.csdn.net/qq_40511966/article/details/83895723
今日推荐