首页 新闻 会员 周边 捐助

栈的存储空间为S(1:50),初始化状态为top=51,经一系列正常的入栈退栈操作,top=50,我问栈底在初始化时bottom是多少

0
[已关闭问题] 关闭于 2025-12-02 07:18
  • 在顺序栈中,如果使用数组 S(1:50),并采用 top = 51 为初始空栈状态,说明:
    • 入栈操作为:top = top - 1; S(top) = x;
    • 所以第一个入栈的元素会放在 S(50)
    • 第二个入栈的元素放在 S(49)
    • 最多可以入栈 50 个元素,此时 top = 1。

这种情况下,栈底(即栈的固定底端)对应的是数组的 S(1) 还是 S(50)?栈底对应的数组下标是多少?

在严蔚敏的教材中,对于顺序栈有两种常见实现:

  1. 栈底在 S[0],top 初始为 -1(C 语言风格,从低地址向高地址增长);
  2. 栈底在 S[1],top 初始为 0
  3. 但也有题目中出现:栈的存储空间 S(1:50),top 初始为 51 —— 这是一种栈底在 S(50),向 S(1) 方向增长的实现。
  • 初始:top = 51 → 空栈;
  • 入栈一个元素:top = 50,S(50) = x;
  • 此时栈中只有一个元素,它既是栈顶也是栈底 → 位于 S(50);
  • 所以栈底位置是 50;
  • bottom 是固定的,始终为 50(在该实现中)。
*Tesla*的主页 *Tesla* | 小虾三级 | 园豆:1188
提问于:2025-12-02 07:18
<
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册