【问题标题】:How do I pop the item underneath the top item in a stack?如何弹出堆栈中顶部项目下方的项目?
【发布时间】:2019-09-12 22:47:30
【问题描述】:

我正在尝试获取堆栈中低于顶部值的值并使用 pop() 将其返回。有谁知道我该怎么做?

这是我到目前为止所拥有的......(我害怕不多)

template <typename T> //Pop second from the top method
void programStack<T>::popSecondFromTop() {

}

【问题讨论】:

  • 你没有。这就是堆栈的意义所在。你能做的最好的就是记录顶部,弹出堆栈,弹出堆栈,将存储的值推回。如果您发现自己必须这样做,堆栈可能不是适合这项工作的数据结构。
  • 也就是说,感觉您可能正在为an X-Y problem 苦苦挣扎。如果您概述了您尝试解决的导致您需要此功能的问题,那么有人可能会针对潜在问题提出更好的解决方案。
  • 你可以简单的存储值,弹出顶部,存储第二个值,再次弹出,将第一个值压入堆栈,然后返回
  • programStack 的标题是什么?这将有助于我们回答您。

标签: c++ visual-studio methods


【解决方案1】:

正如其他人所说,堆栈的目的是能够将最后插入的元素放入堆栈。后进先出 (LIFO) 原则适用于它。但是如果你真的想弹出第二个元素,首先你应该保存第一个,然后弹出它。在它之后,你可以得到你的元素并弹出它。在最后一步,您应该插入第一个元素。就是这样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-21
    • 2010-10-19
    • 2020-01-25
    • 2020-12-19
    • 1970-01-01
    • 1970-01-01
    • 2013-06-19
    相关资源
    最近更新 更多