0

教授要求编写一个堆栈,然后在 C 中定义 push 和 pop 的函数。提示是使用堆栈指针和数组,但似乎我不能正确地做到这一点(我不明白我认为的教训) . 你能帮我整理一下吗?

4

1 回答 1

0

在堆栈中,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
}

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

if (i == 0) {
    /* error, stack is empty */
}
else {
    i = i - 1;
    return a[i];
}
于 2020-05-12T15:09:40.530 回答