如何设计一个在恒定时间内支持以下操作的数据结构?

时间:2014-07-29 18:26:05

标签: data-structures

  1. Push():在集合中添加一个元素。
  2. Pop():返回并删除此集合中的最小元素。
  3. Min():返回但不删除此集合中的最小元素。

2 个答案:

答案 0 :(得分:2)

假设存在这样的数据结构。

然后这是一个基于O(n)比较的排序算法:

  1. 将每个项目推送()到此数据结构中。
  2. 以排序的顺序将它们全部关闭。
  3. 不存在基于O(n)比较的排序算法,因此不存在这样的数据结构。

答案 1 :(得分:0)

Stack中可以使用常量时间push(),pop()和remove。以下帖子证明了这一点:

design a stack such that getMinimum( ) should be O(1)