赞
踩
- 二叉树的特点:
- 所有节点的最大的度为2(即最多拥有2棵子树)
- 左子树和右子树是有顺序的,不能交换左子树和右子树的位置
- 即使某节点只有一棵子树,也要区分该子树是左子树还是右子树
- 二叉树的性质
- 非空二叉树的第i层,最多有2^(i-1)个节点(i>=1)
- 在高度为h的二叉树上最多有2^h - 1个节点(h>=1)
- 对于任意一棵非空二叉树,如果叶子节点个数为n0,度为2的节点个数为n2,则有: n0=n2+1 (考虑证明方式)
满二叉树的特点:
满二叉树一定是真二叉树,但是真二叉树不一定是满二叉树
假设满二叉树的高度和h(h>=1),那么
1, 第i层的节点数: 2^(i-1)
2, 叶子节点的数量: 2^(h-1)
3, 总节点的个数 n = 2^h - 1 (推论: 满二叉树的高度: h= log2(n+1))
完全二叉数的特点:
1,完全二叉树的节点从上到下,从左到右依次满排布(伪满二叉树),如果排布满了就是满二叉树
2,完全二叉树从根节点到倒数第2层的所有节点组成的树是一棵满二叉树
3,满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树
完全二叉树的性质:
1,度为1的节点的子树只能是左子树不能是右子树
2,度为1的节点要么是1个,要么是0个
3,同样节点数量的二叉树,完全二叉树的高度最小
4,假如完全二叉树的高度为h(h>=1),那么最少有 2^(h-1)个节点,最多有2^h -1个节点
5,完全二叉树的总结点数量为n,高度为h,那么2^(h-1)<= n < 2^h 取对数之后:h-1<= log2(n) < h
可推导出: log2(n)< h <= log2(n)+1,又由于h为整数
可推导出: h = floor(log2(n))+1 注意: floor()向下取整, ceiling向上取整
证明: 如果完全二叉树的总结点是n, 当 n为偶数时, 叶子节点数量 n0 = n /2 , 当n为奇数时, 叶子节点数量 n0 = (n + 1) / 2
二叉查找树的特点:
1,每一个节点最多有两个子节点(满足二叉树特点)
2,任何一个节点的左子节点都比自己小,右子节点都比自己大
3,任何一个节点的左右子树都是二叉搜索树
二叉查找树存储的元素必须具备可比较性:
1,自定义类型必须指定比较方式,不允许为null(null类型没法比较)
平衡二叉树的特点:
1,二叉树的左子树和右子树高度差不超过1
2,任意节点的左子树和右子树都是一棵平衡二叉树
红黑树和平衡二叉树之间的区别:
平衡二叉树是高度平衡的,当平衡二叉树的左子树和右子树高度差超过1时,就会通过旋转来达到再次平衡
红黑树不是高度平衡的,只有当不满足"红黑规则"时才会旋转
1,每一个节点要么是红色要么是黑色的
2,根节点必须是黑色的
3,如果一个节点没有子节点,则该节点里面的指向子节点的指针属性值为Nil,这个Nil视为叶子节点,每个叶子节点(Nil)是黑色的
4,如果某一个节点是红色的,那么它的子节点必须是黑色的(即不能出现两个红色节点相连接的情况)
5,对于每一个节点,从该节点到其所有后代叶子节点的简单路径上,均包含相同数目的黑色节点
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。