【问题标题】:Stack Element Numbers堆栈元素编号
【发布时间】:2013-12-25 23:51:16
【问题描述】:

所以,我正在使用 Lua C API,而且我对堆栈系统非常陌生。我正在学习如何管理堆栈以及推送和弹出元素,但我对数字有点困惑。

我知道 -1 是指堆栈中的顶部元素,而 1 是要压入堆栈的第一个元素。 如果 1 是第一个元素,那么顶部元素是 3 吗? -2 和 2 是一回事吗?

【问题讨论】:

  • 您没有显示任何代码。如果您在谈论堆栈算法,则取决于实现。
  • 答案取决于有多少元素被压入堆栈。如果有 3 个元素,那么是的,第一个元素的索引为 1,并且也由 -3 索引。 2 和 -2 都是中间元素的索引。如果你 push 或 pop 元素,正索引保持不变,但负索引会改变。
  • 感谢各位的帮助。我很感激。

标签: c lua stack


【解决方案1】:

堆栈上的第一项总是在 1,最后一个元素总是在 -1。如果有 N 个元素,则最后一个元素也可以在 N 处引用,第一个元素在 -N 处。当你将元素压入堆栈时,N 会增加,当你弹出元素或使用 C API 函数将元素从堆栈中弹出时,你会减少 N。

【讨论】:

    猜你喜欢
    • 2010-10-28
    • 2021-11-02
    • 2014-12-29
    • 2019-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    相关资源
    最近更新 更多