用c语言建立顺序栈,并在顺序栈上实现入栈和出栈操作
时间: 2024-02-03 20:13:04 浏览: 99
用c语言来实现顺序栈
5星 · 资源好评率100%
好的,以下是用C语言建立顺序栈的示例代码,并实现了入栈和出栈操作:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
// 定义顺序栈结构体
typedef struct {
int data[MAX_SIZE]; // 存放栈元素
int top; // 栈顶指针
} SeqStack;
// 初始化顺序栈
void init(SeqStack *s) {
s->top = -1; // 初始时栈为空,栈顶指针设为-1
}
// 判断栈是否为空
int is_empty(SeqStack *s) {
return s->top == -1;
}
// 判断栈是否已满
int is_full(SeqStack *s) {
return s->top == MAX_SIZE - 1;
}
// 入栈操作
int push(SeqStack *s, int x) {
if (is_full(s)) {
printf("栈已满,不能再入栈!\n");
return 0; // 返回0表示入栈失败
}
s->data[++s->top] = x; // 先将栈顶指针加1,再将元素x存入栈中
return 1; // 返回1表示入栈成功
}
// 出栈操作
int pop(SeqStack *s, int *x) {
if (is_empty(s)) {
printf("栈已空,不能再出栈!\n");
return 0; // 返回0表示出栈失败
}
*x = s->data[s->top--]; // 先取出栈顶元素,再将栈顶指针减1
return 1; // 返回1表示出栈成功
}
int main() {
SeqStack s;
init(&s); // 初始化栈
// 入栈操作
push(&s, 1);
push(&s, 2);
push(&s, 3);
// 出栈操作
int x;
pop(&s, &x);
printf("出栈元素:%d\n", x);
pop(&s, &x);
printf("出栈元素:%d\n", x);
pop(&s, &x);
printf("出栈元素:%d\n", x);
return 0;
}
```
这样就可以建立一个顺序栈,并实现入栈和出栈操作了。
阅读全文