
链栈(C语言)
发布日期:2021-05-10 07:59:23
浏览次数:14
分类:精选文章
本文共 1071 字,大约阅读时间需要 3 分钟。
#include "stdio.h"#include "stdlib.h"#define OK true#define ERROR falsetypedef int Status;typedef int ElemType;typedef struct StackNode{ ElemType data; struct StackNode *next;}StackNode, *LinkStackPtr;typedef struct LinkStack{ LinkStackPtr top; int count;}LinkStack;void InitLinkStack(LinkStack *S){ S->top = (LinkStackPtr)malloc(sizeof(StackNode)); S->top->next = NULL; S->count = 0;}Status Push(LinkStack *S, ElemType e){ LinkStackPtr s = (LinkStackPtr)malloc(sizeof(StackNode)); s->data = e; s->next = S->top; S->top = s; S->count++; return OK;}Status Pop(LinkStack *S, ElemType *e){ LinkStackPtr p; if (S->count == 0) return ERROR; *e = S->top->data; p = S->top; S->top = S->top->next; free(p); S->count--; return OK;}void PrintLinkStack(LinkStack *S){ LinkStackPtr p = S->top; while (p->next != NULL) { printf("%d\n", p->data); p = p->next; }}int main(){ LinkStack S; InitLinkStack(&S); Push(&S, 1); Push(&S, 2); Push(&S, 3); Push(&S, 4); Push(&S, 5); PrintLinkStack(&S); int e; Pop(&S, &e); printf("出栈元素:%d\n", e); PrintLinkStack(&S); system("pause"); return 0;}
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2025年04月22日 18时34分45秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
凯撒密码转化,循环,C语言版!
2021-05-11
Vue动画-Vue中CSS动画原理(5-1)
2021-05-11
Vue中的动画封装(5-7)
2021-05-11
idea如何原始导入jar包
2021-05-11
Linux命令
2021-05-11
Spring源码的下载和编译
2021-05-11
密集索引和稀疏索引的区别
2021-05-11
集合总结
2021-05-11
如何下载hierarchy到本地
2021-05-11
js继承
2021-05-11
服务器
2021-05-11
VRRP--详细笔记1
2021-05-11
js选中拖曳
2021-05-11
react生命周期的学习与总结
2021-05-11
P1803 凌乱的yyy / 线段覆盖(贪心,区间调度问题)
2021-05-11
归并排序模板
2021-05-11
实现一个整形有序数组的二分查找
2021-05-11