实验二_栈、队列的实现与应用.doc

实验二_栈、队列的实现与应用.doc

ID:56189385

大小:149.00 KB

页数:16页

时间:2020-03-18

实验二_栈、队列的实现与应用.doc_第1页
实验二_栈、队列的实现与应用.doc_第2页
实验二_栈、队列的实现与应用.doc_第3页
实验二_栈、队列的实现与应用.doc_第4页
实验二_栈、队列的实现与应用.doc_第5页
资源描述:

《实验二_栈、队列的实现与应用.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、..实验二栈、队列的实现及应用实验课程名:数据结构与算法专业班级:学号:姓名:实验时间:实验地点:指导教师:冯珊一、实验目的1、掌握栈和队列的顺序存储结构和链式存储结构,以便在实际背景下灵活运用。2、掌握栈和队列的特点,即先进后出与先进先出的原则。3、掌握栈和队列的基本操作实现方法。二、实验内容一、实验目的及要求1、掌握栈和队列的顺序存储结构和链式存储结构,以便在实际背景下灵活运用。2、掌握栈和队列的特点,即先进后出与先进先出的原则。3、掌握栈和队列的基本操作实现方法。二、实验学时2学时三、实验任务任务一:(1)实现栈的顺序存储(2)实现栈

2、的链式存储。任务二:实现顺序存储的循环队列,完成键盘缓冲区的功能。四、实验重点、难点1.进栈、出栈栈顶指针都要改变。2.队空、队满的条件及入队、出队时指针的变更。五、操作内容与要求1.任务一(1):完成下列程序,该程序实现栈的顺序存储结构,构建顺序栈(栈中的元素依次为R,S,Y,F,C,T),依次进行进栈和出栈操作,判断栈空和栈满操作,返回栈顶元素操作。要求生成顺序栈时,从键盘上读取数据元素。(1)源代码:#include#include#defineSTACK_INIT_SIZE100#defineS

3、TACKINCREMENT10#defineOK1#defineERROR0typedefcharSElemType;/*顺序栈的存储类型*/typedefstruct//definestructureSqStack(){SElemType*base;SElemType*top;intstacksize;}SqStack;..下载可编辑..../*构造空顺序栈*/intInitStack(SqStack*S)//InitStack()sub-function{S->base=(SElemType*)malloc(STACK_INIT_SIZ

4、E*sizeof(SElemType));if(!S->base){printf("分配空间失败!");return(ERROR);}S->top=S->base;S->stacksize=STACK_INIT_SIZE;printf("栈初始化成功!");return(OK);}//InitStack()end/*取顺序栈顶元素*/intGetTop(SqStack*S,SElemType*e)//GetTop()sub-function{if(S->top==S->base){printf("栈为空!");//ifempty

5、SqStackreturn(ERROR);}*e=*(S->top-1);return(OK);}//GetTop()end/*将元素压入顺序栈*/intPush(SqStack*S)//Push()sub-function{SElemTypee;if(S->top-S->base>S->stacksize){S->base=(SElemType*)realloc(S->base,(S->stacksize+STACKINCREMENT*sizeof(SElemType)));if(!S->base){printf("存储空间分配失败!

6、");return(ERROR);}S->top=S->base+S->stacksize;S->stacksize+=STACKINCREMENT;}fflush(stdin);//清除输入缓冲区,否则原来的输入会默认送给变量x..下载可编辑....printf("请输入要入栈的元素的值:");e=getchar();*S->top++=e;return(OK);}//Push()end/*将元素弹出顺序栈*/intPop(SqStack*S,SElemType*e)//Pop()sub-function{if(S->top==S->ba

7、se){printf("栈为空!");return(ERROR);}*e=*--S->top;return(OK);}//Pop()endvoiddisplay(SqStack*s){if(s->top==s->base)printf("栈为空!");else{while(s->top!=s->base){s->top=s->top-1;printf("%c->",*(s->top));}}printf("");}intmain(){intchoice;SElemTypee;SqStacks;do{printf("=======

8、========================");printf("0:退出");printf("1:初始化栈");printf("2:入栈");printf(

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

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

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