首页 > 学院 > 开发设计 > 正文

栈(二)栈的链表存储

2019-11-06 09:01:58
字体:
来源:转载
供稿:网友
#include<stdio.h>#define false 0#define ok 1//定义链表栈的结构typedef struct sqstack{ int data; struct sqstack *next;}sqstack;typedef struct sqstack * linkstack;//建立一个空的栈void creatstack(linkstack *l){ (*l) = (linkstack)malloc(sizeof(sqstack)); (*l)->next = NULL;}//pushvoid pushstack(linkstack *l, int e){ linkstack p; p = (linkstack)malloc(sizeof(sqstack)); p->next= (*l)->next; (*l)->next = p; p->data = e;}//popint popstack(linkstack *l, int *e){ if ((*l)->next == NULL) return false; linkstack q = NULL; q = (*l)->next; (*l)->next = q->next; *e = q->data; free(q); return ok;}void seestack(linkstack l){ if (l->next == NULL) PRintf("栈是空的/n"); linkstack p = NULL; p = l->next; while (p) { printf("%4d/n", p->data); p = p->next; }}int main(void){ int a=0,b=3; linkstack s; creatstack(&s); seestack(s); pushstack(&s, 5); seestack(s); popstack(&s, &a); seestack(s); printf("a=%d", a); return 0;}

创建新的栈就是创建一个头指针,头指针指向栈顶top


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表