【问题标题】:How do i write push and pops functions in a stack? In C如何在堆栈中编写推送和弹出函数?在 C 中
【发布时间】:2020-05-12 07:09:28
【问题描述】:

教授要求写一个堆栈,然后在C中定义push和pop的函数。提示是使用堆栈指针和数组,但似乎我无法正确执行(我没有理解课程我想)。你能帮我解决吗?

【问题讨论】:

    标签: stack push stack-pointer


    【解决方案1】:

    在堆栈中,push 将一项添加到堆栈中。 pop 删除最后添加的项目。

    如果您有一个数组,将其命名为 a 一定长度,len 和一个索引,将其命名为 i,然后您可以实现一个简单的堆栈。

    initialize a with length len
    i = 0
    

    现在,要推送一个项目,您将项目添加到索引i 处的数组中,然后增加索引。但是你必须确保你不会溢出堆栈:

    if (i >= len) {
        /* error, stack is full */
    } else {
        a[i] = new_item
        i = i + 1
    }
    

    要弹出一个项目,您将 i 减 1,并返回数组中该位置的值。但首先你必须确保堆栈上有东西:

    if (i == 0) {
        /* error, stack is empty */
    }
    else {
        i = i - 1;
        return a[i];
    }
    

    【讨论】:

      猜你喜欢
      • 2020-12-19
      • 2016-04-04
      • 2018-06-12
      • 1970-01-01
      • 2015-06-11
      • 2015-04-02
      • 1970-01-01
      • 2023-03-31
      • 2023-03-25
      相关资源
      最近更新 更多