用C语言编写函数实现顺序栈的初始化、出栈、入栈运算。
时间: 2023-08-12 15:03:24 浏览: 60
好的,我可以帮你回答这个问题。
首先,我们来定义顺序栈的结构体:
```c
#define MAXSIZE 100
typedef struct {
int data[MAXSIZE]; // 存储栈中元素的数组
int top; // 栈顶指针
} SqStack;
```
接下来,我们就可以实现栈的初始化、入栈、出栈等操作了。
1. 初始化操作:
```c
void InitStack(SqStack *s) {
s->top = -1; // 栈顶指针初始化为-1
}
```
2. 入栈操作:
```c
int Push(SqStack *s, int x) {
if (s->top == MAXSIZE - 1) {
// 栈满,无法入栈
return 0;
}
s->top++; // 栈顶指针加1
s->data[s->top] = x; // 将新元素x放入栈顶
return 1;
}
```
3. 出栈操作:
```c
int Pop(SqStack *s, int *x) {
if (s->top == -1) {
// 栈空,无法出栈
return 0;
}
*x = s->data[s->top]; // 将栈顶元素赋值给x
s->top--; // 栈顶指针减1
return 1;
}
```
这样,我们就完成了顺序栈的初始化、入栈、出栈等操作的函数实现。