#include <stdio.h>
#include <stdlib.h>
//链表
struct List{
int data;
struct List*next;
};
struct Stack
{
struct List*head;//头结点
int size;
};
struct Stack*stackInit()
{
struct Stack*stack=(struct Stack*)malloc(sizeof(struct Stack));
stack->head=(struct List*)malloc(sizeof(struct List));
stack->head->next=NULL;
stack->size=0;
return stack;
}
//入栈
int stackPush(struct Stack*stack,int data)
{
struct List *tmp = (struct List *)malloc(sizeof(struct List));
tmp->data=data;
tmp->next=stack->head->next;
stack->head->next= tmp;
stack->size++;
return 0;
}
//出栈
int stackPop(struct Stack*stack)
{
int data;
struct List *tmp =stack->head->next;
if (stack->head->next==NULL)
{
return;
}
data=tmp->data;
stack->head->next= tmp->next;
stack->size--;
printf("%d\n",data);
return 0;
}
int main()
{
struct Stack*stack;
stack=stackInit();
for (int i = 0; i < 15; i++)
{
stackPush(stack,i);
}
for (int i = 0; i < 15; i++)
{
stackPop(stack);
}
return 0;
}
10-07
1291
10-07
223