#include<stdio.h>
#include<stdlib.h>
typedef struct Node {
int data;
struct Node* next;
}Node,*Linklist;
Linklist top = NULL;
int isEmpty() {
if (top == NULL) {
return 1;
}
return 0;
}
int pop() {
Linklist prt;
int tmp;
if (isEmpty()) {
printf("空栈!!!!!!!\n");
return -1;
}
prt = top;
top = top->next;
tmp = prt->data;
free(prt);
return tmp;
}
void push(int data) {
Linklist nnode;
nnode = (Linklist)malloc(sizeof(Node));
nnode->data = data;
nnode->next = top;
top = nnode;
}
int main() {
int value,i;
do {
printf("压栈请输入1,弹栈请输入0,退出请输入-1 : ");
scanf_s("%d",&i,4);
if (i == 1) {
printf("请输入压栈数据 : ");
scanf_s(" %d",&value,4);
push(value);
}
else if (i == 0) {
printf("被弹出的数据为 :%d\n",pop());
}
} while ( i != -1);
printf("################");
while (!isEmpty()) {
printf("被弹出的数据为 :%d\n", pop());
}
printf("################");
return 0;
}