数据结构之 链栈的实现
#include "stdafx.h" #include "malloc.h" #define maxSize 100 typedef struct LNode { int data; struct LNode *next; }LNode; void push(LNode *&L,int x)//使用这个方法 使得栈的入栈和出栈都在表头了 { LNode *p; p=(LNode*)malloc(sizeof(LNode)); p->next=L->next; p->data=x; L->next=p; } void push2(LNode *&L,int x)//表尾 { LNode *s; s=(LNode*)malloc(sizeof(LNode)); s->data=x; s->next=NULL; L->next=s; L=s; } void pop(LNode *&L,int &x) { LNode *p; if(L->next==NULL) return; p=L->next; x=p->data; L->next=p->next; free(p); } void show(LNode *&L) { int x; while(L->next!=NULL) { pop(L,x); printf("%d ",x); } } void initSqStack(LNode *&L) { L=(LNode*)malloc(sizeof(LNode)); L->next=NULL; } int _tmain(int argc, _TCHAR* argv[]) { LNode *L; initSqStack(L); for(int i=1;i<=10;i++) push2(L,i); show(L); }