如何使用堆栈(LIFO)实现FIFO,具有相同的复杂性,用于FIFO的推送和弹出操作

时间:2017-02-11 17:57:01

标签: algorithm data-structures stack fifo

我理解传统的方式使推送操作昂贵或流行操作昂贵。

如何让push和pop具有相同的复杂性?

1 个答案:

答案 0 :(得分:2)

这是标准的面试问题。 常见的想法:减去x减去=加号。 您使用2个序列堆栈:

  • PUT将数据部署到堆栈1。
  • GET从堆栈2中提取数据。
  • 如果stack2为空 - 将所有现有数据从堆栈1复制到堆栈2,逐个元素,从顶部1到顶部2.