根据我的理解,
二进制堆(数据结构)用于表示优先级队列ADT。它是一个完整的二叉树,满足堆属性。
堆属性 - 如果A是B的父节点,则节点A的密钥(值)按照节点B的密钥排序,并且在堆中应用相同的排序。
首先,它有助于我记住术语堆,如果将这个数据结构称为 heap 背后的原因。因为,我们还使用术语堆内存。
堆的字典含义 - 随意堆积的不整齐的东西。
问题,
学习Reb-Black树& AVL树数据结构,
为什么我们会想到新的数据结构(二进制堆)?
二进制堆是否解决了Red-Black或AVL树不适合的一组问题?
答案 0 :(得分:4)
二进制堆和红黑树之间的主要区别在于某些操作的性能。
O(1)
访问时间,因此无需搜索它。O(1)
,O(log(n))
最坏情况。应该注意的是,RB树也可以成为好的调度程序,例如Linux内核v2.6中引入的Completely Fair Scheduler。