c语言建立顺序栈,数据依次进栈数据,再全部出栈,输出出栈序列
时间: 2023-10-14 19:06:00 浏览: 97
数据结构不挂科-3-栈和队列.pdf
以下是基于数组实现的顺序栈的 C 代码:
```c
#include <stdio.h>
#define MAXSIZE 100 // 定义栈的最大长度
typedef struct {
int data[MAXSIZE];
int top; // 栈顶指针
} SqStack;
// 初始化栈
void InitStack(SqStack *S) {
S->top = -1;
}
// 判断栈是否为空
int isEmpty(SqStack *S) {
if(S->top == -1)
return 1;
return 0;
}
// 判断栈是否已满
int isFull(SqStack *S) {
if(S->top == MAXSIZE - 1)
return 1;
return 0;
}
// 入栈
int Push(SqStack *S, int x) {
if(isFull(S))
return 0;
S->data[++S->top] = x;
return 1;
}
// 出栈
int Pop(SqStack *S, int *x) {
if(isEmpty(S))
return 0;
*x = S->data[S->top--];
return 1;
}
int main() {
SqStack S;
InitStack(&S); // 初始化栈
int n, x;
printf("请输入进栈元素的个数:");
scanf("%d", &n);
printf("请依次输入%d个进栈元素:", n);
for(int i = 0; i < n; i++) {
scanf("%d", &x);
Push(&S, x); // 元素依次入栈
}
printf("出栈序列为:");
while(!isEmpty(&S)) {
Pop(&S, &x); // 元素依次出栈
printf("%d ", x);
}
return 0;
}
```
运行程序后,按照提示输入进栈元素的个数和数据,程序会依次将数据入栈,并在出栈时输出出栈序列。
阅读全文