我如何在堆栈中编写push和pops函数?在C

问题描述 投票:0回答:1

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

stack push stack-pointer
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];
}
© www.soinside.com 2019 - 2024. All rights reserved.