首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

数据结构之栈的兑现

2012-12-21 
数据结构之栈的实现1、顺序结构的栈typedef char ElementTypetypedef struct linknode{ElementType datas

数据结构之栈的实现

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

热点排行