c语言建立顺序栈,依次进栈数据为 1,2,3,4,5,再全部出栈,输出出栈序列
时间: 2023-08-16 09:08:04 浏览: 60
下面是使用C语言实现基本的顺序栈,并按照题目要求进行操作的代码。栈中元素的类型为int,栈的最大容量为100。
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
typedef struct {
int data[MAX_SIZE];
int top;
} Stack;
void initStack(Stack *s) {
s->top = -1;
}
int isEmpty(Stack *s) {
return s->top == -1;
}
int isFull(Stack *s) {
return s->top == MAX_SIZE - 1;
}
void push(Stack *s, int x) {
if (isFull(s)) {
printf("Stack is full!\n");
exit(1);
}
s->top++;
s->data[s->top] = x;
}
int pop(Stack *s) {
if (isEmpty(s)) {
printf("Stack is empty!\n");
exit(1);
}
int x = s->data[s->top];
s->top--;
return x;
}
int main() {
Stack s;
initStack(&s);
// 依次进栈数据为 1,2,3,4,5
push(&s, 1);
push(&s, 2);
push(&s, 3);
push(&s, 4);
push(&s, 5);
// 全部出栈,输出出栈序列
while (!isEmpty(&s)) {
printf("%d ", pop(&s));
}
printf("\n");
return 0;
}
```
输出结果为:5 4 3 2 1,即出栈序列为 5,4,3,2,1。