赞
踩
为什么AVL树适合查,而红黑树适合插入、删除呢?
这是因为红黑树不是严格的平衡二叉树,对树的高度的限制比AVL树低,由于AVL树对左右子树的高度差有严格的限定,必须保证左右子树高度差不超过1,这个特性导致了插入/删除操作很容易导致了破环平衡特性,因此开销大,但是这样也有其优点,保证了高度尽可能的低,使得查找效率高。
而红黑树的任一结点的左右子树高度差不超过一倍,只要保证左根右、根叶黑、不红红、黑路同的特性,那么就是红黑树,因此限制不AVL小,导致了其高度可能会比AVL树高,导致了其查找效率比AVL树低。但是同样的红黑树的不严格特性,也有它的优点,可以使得删除、插入操作不容易破环其平衡的特性,那么就很大程度的降低了调整的开销。
①②红黑树满足左<根<右,因此满足BST
③④得看情况,因为红黑树要满足左根右、根叶黑、不红红、黑路同特性,而每一颗子树必定满足 左根右、不红红、黑路同的特性,但是其子树的颜色可能是黑色、也可能是红色,导致了可能不满足根叶黑的特性,因此如果其子树的根黑色则是红黑树,否则则不是红黑树
B错误,未必是红色,黑色也是可能的。
如果所有节点都是黑色,那么要满足 黑路同特性 ,就必须是满二叉树。
①内部节点最少的红黑树情况是,全部节点都是黑色,因为如果有红色节点,是不会导致更改黑高的值的,因此如果有红色节点,那么可能树高会增加。而最少的情况是,黑高为h,那么是只有黑色节点的满二叉树,最少为2h-1,A正确
②而黑高为h,内部节点最多的情况是,红黑树的每一条从根节点到叶子节点的路径都是红黑相间的,红黑树黑高为h,在内部节点最多的情况下,从根节点到叶节点(失败节点)的,黑色节点数是h+1个,红色节点是h个,因此内部结点最多为22h-1
③由于红色结点不能连续出现,因此关键字为n个,黑高>=h/2,再由①可知,n>=2(h/2)-1,所以h<=2log2(n+1)
④红黑树是每一条路径的红色结点不会超过每一条路径的结点数目的一半,但是红色结点时有可能超过内部结点数目的一半的,因为每一层的结点数目指数倍增长,上层黑色,下层红色,交替是有可能超过内部结点数目的一半的。
红黑树的查找效率是和AVL树同一个数量级的,但是红黑树的树高是有可能比AVL树高的,导致了其查找效率降低,而插入、删除效率是比AVL树高的。
C错误
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。