读书人

数据结构之栈的兑现

发布时间: 2012-12-21 12:03:49 作者: rapoo

数据结构之栈的实现

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");}
?

读书人网 >编程

热点推荐