教授要求编写一个堆栈,然后在C语言中定义push和pop的功能。提示涉及使用堆栈指针和数组,但似乎我做得不好(我不明白该课程,认为)。您能帮我解决一下吗?
在堆栈中,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];
}