采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,最大堆堆顶元素是优先级最高的,每次poll()或者remove()都是取出优先级最高的元素。 最大堆堆顶元素是优先级最小的的,每次poll()或者remove()都是取出优先级最小的元素。 所以堆顶元素的大小不是按照元素本身的大小,是按照优先级来排序的。 最小堆堆顶元素是优先级最小的,每次删除是取优先级最小的。 最大堆堆顶元素是优先级最大的,每次删除是取优先级最大的。 上面判断对么?
我被你的描述搞晕了。
整体来讲,最大堆堆顶是最大的元素,最小堆堆顶是最小的元素。我的建议是,把最大和最小,与优先级这个概念分开来看。
因为大多数时候,大小是有绝对的概念的。但是优先级不是。比如捐款,富人捐得多一些,所以,你的钱越多,优先级越高;比如扶贫,穷人获得的资助多一些,所以你越穷,优先级越高。因此,优先队列背后可以是最大堆,也可以是最小堆,看你的应用场景。
我觉得我上面说的很清楚,大小和优先级是两个尺度的概念,你应该可以理解。但如果你问我的是一个考试题目,那我也不知道。需要问出题人。应试和理解知识完全不同。考试分数高的人可能对考试的知识完全不理解;对知识理解充分的人也不一定考试分数高。
继续加油!:)
非常感谢!
登录后可查看更多问答,登录/注册
动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…
10.3k 16
1.4k 17
1.3k 14
1.2k 14