数据结构之栈的实现
1、顺序结构的栈
typedef char ElementType;typedef struct linknode{ ElementType data; struct linknode *next;}LiStack;void InitStack(LiStack *&s){ s=(LiStack *)malloc(sizeof(LiStack)); s->next=NULL; }void ClearStack(LiStack *&s){ LiStack *p=s->next; while(p!=NULL){ free(s); s=p; p=p->next; } free(s); }int StackLength(LiStack *s){ LiStack *p=s->next; int i=0; while (p!=NULL) { i++; p=p->next; } return i;}int StackEmpty(LiStack *s){ return s->next==NULL;}int Push(LiStack *&s,ElementType e){ LiStack *p=(LiStack*)malloc(sizeof(LiStack)); p->data=e; p->next=s->next; s->next=p; return 1; }int Pop(LiStack *&s,ElementType &e){ if(s->next==NULL){ return 0; } LiStack *p=s->next; e=p->data; s->next=p->next; free(p); return 1;}int GetTop(LiStack *s,ElementType &e){ if(s->next==NULL){ return 0; } LiStack *p=s->next; e=p->data; free(p); return 1; }void DisplayStack(LiStack *s){ LiStack *p=s->next; while (p!=NULL) { printf("%c",p->data); p=p->next; } printf("\n");}?