第4章 栈和队列-3.ppt

第4章 栈和队列-3.ppt

ID:48771418

大小:103.00 KB

页数:23页

时间:2020-01-23

第4章 栈和队列-3.ppt_第1页
第4章 栈和队列-3.ppt_第2页
第4章 栈和队列-3.ppt_第3页
第4章 栈和队列-3.ppt_第4页
第4章 栈和队列-3.ppt_第5页
资源描述:

《第4章 栈和队列-3.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、4.3栈和队列算法实现的C语言源程序4.3.1栈的顺序存储结构及实现#include"stdio.h"#include"stdlib.h"#defineMAXSIZE100typedefintElemType;typedefstruct{ElemTypeelem[MAXSIZE];inttop;}SqStack;/*顺序栈的类型标识符*/第页voidOutStack(SqStackp);/*此处参数必须与下边函数说明一致*/voidInitStack(SqStack*p);voidPush(SqStack*p,ElemTypex

2、);ElemTypePop(SqStack*p);ElemTypeGetTop(SqStackp);第页main( ){SqStackq;inti,y,cord;ElemTypea;do{printf("");printf("主菜单");printf("1初始化顺序栈");printf("2插入一个元素");printf("3删除栈顶元素");printf("4取栈顶元素");printf("5结束程序运行");printf("-----------------------

3、----");printf("请输入您的选择(1,2,3,4,5)");scanf("%d",&cord);switch(cord)第页{case1:{InitStack(&q);OutStack(q);}break;case2:{printf("请输入插入的数据a=");scanf("%d",&a);Push(&q,a);OutStack(q);}break;case3:{a=Pop(&q);printf("a=%d",a);OutStack(q);}break;case4:{y=GetTop(q);printf(

4、"y=%d",y);OutStack(q);}break;第页case5:exit(0);}}while(cord<=5);}/*mainend*/voidInitStack(SqStack*p){p->top=0;}voidPush(SqStack*p,ElemTypex){if(p->toptop=p->top+1;p->elem[p->top]=x;}elseprintf("Overflow!");}第页ElemTypePop(SqStack*p){ElemTypex;if(p->top!=0

5、){x=p->elem[p->top];p->top=p->top-1;return(x);}else{printf("Underflow!");return(-1);}}第页ElemTypeGetTop(SqStackp){ElemTypex;if(p.top!=0){x=p.elem[p.top];return(x);}else{printf("Underflow!");return(-1);}}第页voidOutStack(SqStackp){inti,j;if(p.top==0)printf("TheStac

6、kisNULL.");for(i=p.top;i>0;i--)printf("%2d%6d",i,p.elem[i]);}第页在上述程序中既包括了每个算法对应的函数代码,也包括在主函数之中对函数的调用。应该注意的是输出函数和取栈顶数据(但是不出栈)函数中形参SqStackp不使用指针,再看主函数的调用语句的实参q不用求地址。而进栈、出栈和初始化栈的函数形参SqStack*p使用指针,在主函数中调用语句的实参&q需将地址代入。第页4.3.2队列的链表存储结构及实现#include"stdio.h"#include"stdlib

7、.h"#defineElemTypeinttypedefstructNodeType/*数据元素结点的结构*/{ElemTypedata;structNodeType*next;}NodeType;typedefstruct/*队列头、尾指针被封装在一起*/{NodeType*front,*rear;}LinkQueue;/*队列头尾指针结构体*/第页NodeType*p,*s,*h;voidoutlin(LinkQueueqq);/*参数要与下面的函数说明一致*/voidcreat(LinkQueue*qe);voidinse

8、rt(LinkQueue*qe,ElemTypex);ElemTypedelete(LinkQueue*qe);main( ){LinkQueueque;ElemTypey,x;inti,x,y,cord;do{printf("主菜单");printf(

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

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

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