【发布时间】:2023-04-03 04:45:02
【问题描述】:
为什么人们强调堆用于实现优先级队列,因为查看最大值/最小值的时间复杂度是 O(1) 。
通过使用指向最右边/最左边节点的指针,这也不能在 bst 上轻松实现。
【问题讨论】:
-
您无法在 O(1) 时间内访问 BST 中最左边/最右边的节点。
-
@EJP 我想到了 c++ stl map 问这个......它实现了红黑树并有这个成员函数'end'它返回你在常量时间内的最大值......非常类似于我们如何访问链表的最后一个节点。
-
获取迭代器是O(1)。迭代它不是。
标签: c++ heap binary-search-tree priority-queue