#include <stdio.h>
#include <stdlib.h>
#define true 1
#define false 0
#define ERROR -100000
typedef struct Node* Stack;
struct Node
{
int element;
struct Node* next;
};
void init(Stack stack) //初始化
{
stack->next = NULL;
}
int isEmpty(Stack stack) //判断是否为空,如果空返回true,非空返回false
{
if (stack->next == NULL)
return true;
return false;
}
void Push(Stack stack, int e) //进栈
{
Stack temp = (Stack)malloc(sizeof(struct Node));
temp->element = e;
temp->next = stack->next;
stack->next = temp;
}
int Pop(Stack stack) //出栈
{
Stack temp ;
int t;
if (isEmpty(stack))
{
printf("栈空");
return ERROR;
}
temp = stack->next;
t = temp->element;
stack->next = stack->next->next;
free(temp);
return t;
}
int main(void)
{
Stack stack = (Stack)malloc(sizeof(struct Node));
init(stack);
Push(stack, 2);
Push(stack, 3);
Push(stack, 4);
printf("%d\n", Pop(stack));
printf("%d\n", Pop(stack));
printf("%d\n", Pop(stack));
return 0;
}