数据结构之哈夫曼树、红黑树

1、哈夫曼树又称为最优二叉树或带权路径长度最短的二叉树。其显著的特点是带权值的节点都是叶子节点,权值越小的节点,其到根节点的路径长度越长,反之,则越短。哈夫曼树可以有效的应用于压缩,我们可以把待压缩的文件中的字符的出现次数作为权值,权值越大的,距离根节点越近,字符编码越少。一般在节点左边的路径可用“0”表示,在节点右边的路径用“1”表示。详细可参照:http://blog.csdn.net/bruce_6/article/details/38656413

2、二叉树作为数据存储的工具具有重要的优势:可以快速地找到一个给定关键字的数据项,并且可以快速地插入和删除数据项。其他的数据存储结构,例如数组、有序数组以及链表,执行这些操作却很慢。因此,二叉树似乎是理想的数据存储结构。

遗憾的是,二叉搜索树有一个很麻烦的问题。如果树中插入的是随机数据,则执行效果很好。但是,如果插入的是有序的数据(17、21、28、36.....)或者逆序的数据(36,28,21,17,......),速度就变得特别慢。因为当前插入的数值有序时,二叉树就是非平衡的了。而对于非平衡树,它的快速查找(插入、删除)指定数据项的能力就丧失了。

解决非平衡树问题的方法:红-黑树,它是增加了某些特点的二叉搜索树,此外,还有2-3-4树,2-3树,外部存储等。

当树没有分支时(只有左子树或右子树的情况下),它其实就是一个链表。在这种情况下,查找的速度下降到O(N),而不是平衡树的O(logN)。对于随机数据的实际数量来说,一棵树特别不平衡的情况是不大可

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值