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

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

ID:59331572

大小:38.64 KB

页数:5页

时间:2020-09-04

链式栈基本操作C语言实现学习代码.docx_第1页
链式栈基本操作C语言实现学习代码.docx_第2页
链式栈基本操作C语言实现学习代码.docx_第3页
链式栈基本操作C语言实现学习代码.docx_第4页
链式栈基本操作C语言实现学习代码.docx_第5页
资源描述:

《链式栈基本操作C语言实现学习代码.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、头文件#define_CRT_SECURE_NO_WARNINGS#include#include#definedatatypeintstructstack1{intnum;datatypedata;structstack1*pnext;};typedefstructstack1stack;stack*init(stack*phead);//初始化stack*push(stack*phead,intnum,datatypedata);//压栈stack*pop(stack*ph

2、ead,stack*tnode);//出栈stack*freeall(stack*phead);//清空voidprintf1(stack*phead);//打印源文件#define_CRT_SECURE_NO_WARNINGS#include#include#include"abc.h"stack*init(stack*phead){returnNULL;}stack*push(stack*phead,intnum,datatypedata){stack*p=(stack*)

3、malloc(sizeof(stack));p->num=num;p->data=data;p->pnext=NULL;if(phead==NULL){phead=p;returnphead;}else{stack*q=phead;while(q->pnext!=NULL){q=q->pnext;}q->pnext=p;returnphead;}}voidprintf1(stack*phead){if(phead==NULL){return;}else{printf("本结点地址=%p,后一个结点地址=%p,结点编

4、号=%d,结点数据=%d",phead,phead->pnext,phead->num,phead->data);printf1(phead->pnext);//printf("本结点地址=%p,后一个结点地址=%p,结点编号=%d,结点数据=%d",phead,phead->pnext,phead->num,phead->data);}}stack*pop(stack*phead,stack*tnode){if(phead==NULL){returnNULL;}elseif(phead->pnext==N

5、ULL){tnode->num=phead->num;tnode->data=phead->data;free(phead);phead=NULL;returnphead;}else{stack*p=phead;stack*q=phead->pnext;while(q->pnext!=NULL){p=q;q=q->pnext;}p->pnext=NULL;tnode->num=q->num;tnode->data=q->data;free(q);returnphead;}}stack*freeall(stack*p

6、head){if(phead==NULL){returnNULL;}else{stack*p=phead;stack*q=NULL;while(p!=NULL){q=p->pnext;free(p);p=q;//q=q->pnext;}returnNULL;}}测试代码#define_CRT_SECURE_NO_WARNINGS#include#include#include"abc.h"voidmain(){stack*pp=NULL;//init(pp);//pp=push

7、(pp,1,10);//pp=push(pp,2,11);//pp=push(pp,3,12);//pp=push(pp,4,13);//pp=push(pp,5,14);//printf("入栈之后");//printf1(pp);//printf("出栈之后");///*pp=freeall(pp);//printf1(pp);*///while(pp!=NULL)//{//stack*p=(stack*)malloc(sizeof(stack));//pp=pop(pp,p);//printf1(pp

8、);//printf("出栈的数据%d,%d",p->num,p->data);//}intnum=10,i=0;while(num){i++;pp=push(pp,i,num%2);num=num/2;}printf1(pp);system("pause");}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。