c语言创建堆栈压栈出栈遍历栈清空栈.doc

c语言创建堆栈压栈出栈遍历栈清空栈.doc

ID:51687213

大小:40.95 KB

页数:5页

时间:2020-03-15

c语言创建堆栈压栈出栈遍历栈清空栈.doc_第1页
c语言创建堆栈压栈出栈遍历栈清空栈.doc_第2页
c语言创建堆栈压栈出栈遍历栈清空栈.doc_第3页
c语言创建堆栈压栈出栈遍历栈清空栈.doc_第4页
c语言创建堆栈压栈出栈遍历栈清空栈.doc_第5页
资源描述:

《c语言创建堆栈压栈出栈遍历栈清空栈.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、//创建堆栈,压栈,出栈,遍历栈,清空栈2012.7.20#include#include#includevoidinit_stack(structstack*ps);//初始化voidpush(structstack*ps);//压栈voidpop(structstack*ps);//出栈voidclear_stack(structstack*ps);//清空栈voidoutput_stack(structstack*ps);//显示栈的内容intis

2、_empty(structstack*ps);//判断是否为空栈//结构体structnode{charno[20];charname[20];structnode*pnext;};//结构体structstack{structnode*top;structnode*bottom;};//主函数intmain(void){inti;structstacks;printf("开始初始化..........");init_stack(&s);printf("初始化成功!");printf("开始压栈!"

3、);for(i=0;i<2;i++){push(&s);}printf("压栈完成!");printf("显示栈!");output_stack(&s);printf("开始出栈!");pop(&s);printf("显示栈!");output_stack(&s);printf("清空栈!");clear_stack(&s);printf("显示栈!");output_stack(&s);return0;}//初始化,建立一个空的栈voidinit_stack(structstack*p

4、s){ps->top=(structnode*)malloc(sizeof(structnode));if(ps->top==NULL){printf("内存分配失败!");exit(-1);}else{ps->bottom=ps->top;(ps->top)->pnext=NULL;}return;}//压栈,链表原理voidpush(structstack*ps){structnode*p;p=(structnode*)malloc(sizeof(structnode));if(p==NULL){pri

5、ntf("内存分配失败!");exit(-1);}else{printf("请压入学号:");scanf("%s",p->no);printf("请压入姓名:");scanf("%s",p->name);p->pnext=ps->top;ps->top=p;printf("压入成功!");}return;}//出栈链表原理voidpop(structstack*ps){structnode*p;if(is_empty(ps)){printf("栈是空的,没数据可出!");return;}else{p

6、=ps->top;ps->top=p->pnext;free(p);}return;}//清空栈里的内容voidclear_stack(structstack*ps){structnode*p,*q;if(is_empty(ps)){printf("栈是空的,不能再清除!");return;}else{p=ps->top;//定义两个指针变量,同时指向栈顶q=p;while(q->pnext!=NULL){q=p->pnext;//指向栈顶下一个节点free(p);//删除栈顶p=q;//同时指向新栈顶}p

7、s->top=p;//指向栈顶}return;}//判断堆栈是否为空intis_empty(structstack*ps){if(ps->top==ps->bottom)return1;elsereturn0;}//显示栈里的内容voidoutput_stack(structstack*ps){structnode*p;if(is_empty(ps)){printf("栈是空的,无数据可显示!");return;}else{p=ps->top;while(p->pnext!=NULL){printf("学号

8、:%s姓名:%s",p->no,p->name);p=p->pnext;}}return;}

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

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

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