教授要求编写一个堆栈,然后在 C 中定义 push 和 pop 的函数。提示是使用堆栈指针和数组,但似乎我不能正确地做到这一点(我不明白我认为的教训) . 你能帮我整理一下吗?
问问题
33 次
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
}
要弹出一个项目,您将减i
1,并返回该位置的数组中的值。但首先你必须确保堆栈上有东西:
if (i == 0) {
/* error, stack is empty */
}
else {
i = i - 1;
return a[i];
}
于 2020-05-12T15:09:40.530 回答