gpt4 book ai didi

algorithm - 使用两个队列实现堆栈

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:11:24 27 4
gpt4 key购买 nike

之前有人问过类似的问题there ,不过这里的问题是反过来,用两个队列做栈。问题...

给定两个队列及其标准操作(enqueuedequeueisemptysize),实现一个堆栈及其标准操作(poppushisemptysize)。

解决方案应该有两个版本。

  • 版本A:堆栈在推送项目时应该是高效的;和
  • 版本 B:堆栈在弹出项目时应该是高效的。

与任何特定语言实现相比,我对算法更感兴趣。但是,我欢迎用我熟悉的语言( )表达的解决方案。

最佳答案

版本A(高效推送):

  • 推送:
    • 在queue1中排队
  • 弹出:
    • 当 queue1 的大小大于 1 时,将出队的项目从 queue1 输送到 queue2
    • 出队并返回queue1的最后一项,然后交换queue1和queue2的名称

版本 B(高效弹出):

  • 推送:
    • 在queue2中排队
    • 将queue1的所有item放入queue2中,然后交换queue1和queue2的名字
  • 弹出:
    • 从queue1出队

关于algorithm - 使用两个队列实现堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/688276/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com