请你实现一个栈。 操作: push x:将 加入栈,保证 为 int 型整数。 pop:输出栈顶,并让栈顶出栈 top:输出栈顶,栈顶不出栈
时间: 2023-03-25 21:03:47 浏览: 158
实现栈的操作
好的,我可以回答这个问题。以下是一个简单的栈的实现:
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
typedef struct {
int data[MAX_SIZE];
int top;
} Stack;
void push(Stack *s, int x) {
if (s->top == MAX_SIZE - 1) {
printf("Stack overflow\n");
exit(1);
}
s->data[++s->top] = x;
}
int pop(Stack *s) {
if (s->top == -1) {
printf("Stack underflow\n");
exit(1);
}
return s->data[s->top--];
}
int top(Stack *s) {
if (s->top == -1) {
printf("Stack is empty\n");
exit(1);
}
return s->data[s->top];
}
int main() {
Stack s;
s.top = -1;
push(&s, 1);
push(&s, 2);
push(&s, 3);
printf("%d\n", top(&s));
printf("%d\n", pop(&s));
printf("%d\n", top(&s));
printf("%d\n", pop(&s));
printf("%d\n", top(&s));
printf("%d\n", pop(&s));
return ;
}
阅读全文