链式栈基本操作C语言实现学习代码

上传人:宝路 文档编号:21648046 上传时间:2017-11-24 格式:DOCX 页数:5 大小:39.20KB
返回 下载 相关 举报
链式栈基本操作C语言实现学习代码_第1页
第1页 / 共5页
链式栈基本操作C语言实现学习代码_第2页
第2页 / 共5页
链式栈基本操作C语言实现学习代码_第3页
第3页 / 共5页
链式栈基本操作C语言实现学习代码_第4页
第4页 / 共5页
链式栈基本操作C语言实现学习代码_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《链式栈基本操作C语言实现学习代码》由会员分享,可在线阅读,更多相关《链式栈基本操作C语言实现学习代码(5页珍藏版)》请在金锄头文库上搜索。

1、头文件#define _CRT_SECURE_NO_WARNINGS#include#include#define datatype intstruct stack1int num;datatype data;struct stack1 *pnext;typedef struct stack1 stack;stack *init(stack *phead);/初始化stack *push(stack *phead, int num, datatype data);/压栈stack *pop(stack *phead, stack *tnode);/出栈stack *freeall(stack

2、*phead);/清空void printf1(stack *phead);/打印源文件#define _CRT_SECURE_NO_WARNINGS#include#include#includeabc.hstack *init(stack *phead)return NULL;stack *push(stack *phead, int num, datatype data)stack *p = (stack *)malloc(sizeof(stack);p-num = num;p-data = data;p-pnext = NULL;if (phead = NULL)phead = p;r

3、eturn phead;elsestack *q = phead;while (q-pnext != NULL)q = q-pnext;q-pnext = p;return phead;void printf1(stack *phead)if (phead = NULL)return;elseprintf(本结点地址=%p,后一个结点地址=%p,结点编号=%d,结点数据=%dn, phead, phead-pnext, phead-num, phead-data);printf1(phead-pnext);/printf(本结点地址=%p,后一个结点地址=%p,结点编号=%d,结点数据=%dn

4、, phead, phead-pnext, phead-num, phead-data);stack *pop(stack *phead, stack *tnode)if (phead = NULL)return NULL;else if (phead-pnext = NULL)tnode-num = phead-num;tnode-data = phead-data;free(phead);phead = NULL;return phead;elsestack *p = phead;stack *q = phead-pnext;while (q-pnext!= NULL)p = q;q =

5、q-pnext;p-pnext = NULL;tnode-num = q-num;tnode-data = q-data;free(q);return phead;stack *freeall(stack *phead)if (phead = NULL)return NULL;elsestack *p = phead;stack *q=NULL;while (p!= NULL)q = p-pnext;free(p);p = q; /q = q-pnext;return NULL;测试代码#define _CRT_SECURE_NO_WARNINGS#include#include#includ

6、eabc.hvoid main()stack *pp=NULL;/init(pp);/pp = push(pp, 1, 10);/pp = push(pp, 2, 11);/pp = push(pp, 3, 12);/pp = push(pp, 4, 13);/pp = push(pp, 5, 14);/printf(入栈之后n);/printf1(pp);/printf(出栈之后n);/*pp = freeall(pp);/printf1(pp);*/while (pp != NULL)/ stack *p = (stack *)malloc(sizeof(stack);/ pp = pop(pp, p);/ printf1(pp);/ printf(出栈的数据n%d,%dn, p-num, p-data);/int num = 10, i = 0;while (num)i+;pp = push(pp, i, num % 2);num = num / 2;printf1(pp);system(pause);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号