#include#include //链表 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("%dn",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; }



