用c语言编写顺序栈的打印
时间: 2023-10-21 16:07:11 浏览: 54
下面是用C语言编写顺序栈的打印代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#define STACK_MAX_SIZE 100
typedef struct {
int data[STACK_MAX_SIZE];
int top;
} SeqStack;
void InitStack(SeqStack *s) {
s->top = -1;
}
int IsEmpty(SeqStack *s) {
return s->top == -1;
}
int IsFull(SeqStack *s) {
return s->top == STACK_MAX_SIZE - 1;
}
void Push(SeqStack *s, int x) {
if (IsFull(s)) {
printf("Stack overflow\n");
exit(1);
}
s->data[++s->top] = x;
}
int Pop(SeqStack *s) {
if (IsEmpty(s)) {
printf("Stack underflow\n");
exit(1);
}
return s->data[s->top--];
}
void PrintStack(SeqStack *s) {
printf("Stack elements: ");
for (int i = s->top; i >= 0; i--) {
printf("%d ", s->data[i]);
}
printf("\n");
}
int main() {
SeqStack s;
InitStack(&s);
Push(&s, 1);
Push(&s, 2);
Push(&s, 3);
PrintStack(&s);
Pop(&s);
PrintStack(&s);
return 0;
}
```
其中,`InitStack` 函数用于初始化栈,`IsEmpty` 和 `IsFull` 函数用于判断栈是否为空和是否已满,`Push` 函数用于入栈,`Pop` 函数用于出栈,`PrintStack` 函数用于打印栈中元素。在 `main` 函数中,我们先初始化栈,然后入栈三个元素,然后打印栈中的元素,接着出栈一个元素,再次打印栈中的元素。