1 / 26
文档名称:

实验二栈和队列(基本操作).doc

格式:doc   大小:75KB   页数:26
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

实验二栈和队列(基本操作).doc

上传人:511709291 2019/11/13 文件大小:75 KB

下载得到文件列表

实验二栈和队列(基本操作).doc

文档介绍

文档介绍:实验二栈和队列1、实验目的:熟悉栈的特点(先进后出)及栈的基本操作,如入栈、出栈等,掌握栈的基本操作在栈的顺序存储结构和链式存储结构上的实现;熟悉队列的特点(先进先出)及队列的基本操作,如入队、出队等,掌握队列的基本操作在队列的顺序存储结构和链式存储结构上的实现。2、实验要求:复习课本中有关栈和队列的知识;用C语言完成算法和程序设计并上机调试通过;撰写实验报告,给出算法思路或流程图和具体实现(源程序)、算法分析结果(包括时间复杂度、空间复杂度以及算法优化设想)、输入数据及程序运行结果(必要时给出多种可能的输入数据和运行结果)。3、实验内容[实验1]栈的顺序表示和实现实验内容与要求:编写一个程序实现顺序栈的各种基本运算,并在此基础上设计一个主程序,完成如下功能:(1)初始化顺序栈(2)插入元素(3)删除栈顶元素(4)取栈顶元素(5)遍历顺序栈(6)置空顺序栈分析:栈的顺序存储结构简称为顺序栈,它是运算受限的顺序表。对于顺序栈,入栈时,首先判断栈是否为满,栈满的条件为:p->top==MAXNUM-1,栈满时,不能入栈;否则出现空间溢出,引起错误,这种现象称为上溢。出栈和读栈顶元素操作,先判栈是否为空,为空时不能操作,否则产生错误。通常栈空作为一种控制转移的条件。注意:(1)顺序栈中元素用向量存放(2)栈底位置是固定不变的,可设置在向量两端的任意一个端点(3)栈顶位置是随着进栈和退栈操作而变化的,用一个整型量top(通常称top为栈顶指针)来指示当前栈顶位置#include<>#include<>typedefintSElemType;typedefintStatus;#defineINIT_SIZE100#defineSTACKINCREMENT10#defineOk1#defineError0#rue1#defineFalse0typedefstruct{ SElemType*base; SElemType*top; intstacksize;}SqStack;//初始化栈StatusInitStack(SqStack*s){ s->base=(SElemType*)malloc(INIT_SIZE*sizeof(SElemType)); if(!s->base) { puts("存储空间分配失败!"); returnError; } s->top=s->base; s->stacksize=INIT_SIZE; returnOk;}//清空栈StatusClearStack(SqStack*s){s->top=s->base;returnOk;}//栈是否为空StatusStackEmpty(SqStack*s){if(s->top==s->base)returnTrue;elsereturnFalse;}//销毁栈StatusDestroy(SqStack*s){ free(s->base); s->base=NULL; s->top=NULL; s->stacksize=0; returnOk;}//获得栈顶元素StatusGetTop(SqStack*s,SElemType&e){ if(s->top==s->base)returnError; e=*(s->top-1); returnOk;}//压栈StatusPush(SqStack*s,SElemTypee){ if(s->top-s->base>=s->stacksize) { s->base=(SElemType*)realloc(s->base,(s->stacksize+STACKINCREMENT)*sizeof(SElemType)); if(!s->base) { puts("存储空间分配失败!"); returnError; } s->top=s->base+s->stacksize; s->stacksize+=STACKINCREMENT; } *s->top++=e; returnOk;}//弹栈StatusPop(SqStack*s,SElemType*e){ if(s->top==s->base)returnError; --s->top; *e=*(s->top); returnOk;}//遍历栈StatusStackTraverse(SqStack*s,Status(*visit)(SElemType)){SElemType*b=s->base;SElemType*t=s->top;while(t>b)visit(*b++);printf("\n");returnOk;}Statusvisit(SElemTypec){printf("%d",c);returnOk;}intmain(){ SqStack

最近更新

2025年郑州智能科技职业学院马克思主义基本原.. 12页

2025年陕县招教考试备考题库带答案解析 30页

2026年主管中药师考试备考题100道附参考答案(.. 38页

2026年主管中药师考试备考题100道及1套参考答.. 38页

2026年宪法知识竞赛试题库100道及完整答案【各.. 41页

2026年宪法知识竞赛试题库100道及答案(典优).. 41页

小学历史与文化知识竞赛题库100道及完整答案 37页

新安全生产法知识竞赛试题库含答案(能力提升.. 44页

小学历史与文化知识竞赛题库100道带答案(满分.. 36页

新安全生产法知识竞赛试题库含答案(典型题).. 44页

最新全国政法队伍教育整顿知识竞赛试题库及完.. 40页

最新煤气操作证考试题100道及答案【各地真题】.. 38页

全球多时间尺度复合高温干旱增加 7页

2025年凸轮轴车床项目合作计划书 67页

2025年便携式有毒有害气体测定仪项目合作计划.. 68页

农文旅融合促农品热销 6页

第一届全国博士后创新创业大赛疫情防控安全承.. 2页

2025年闽南理工学院单招职业技能测试题库附答.. 43页

2025年黔南民族幼儿师范高等专科学校单招综合.. 44页

2026山西省面向北京邮电大学选调优秀高校毕业.. 46页

2026年c语言期末考试题库及答案(网校专用) 13页

2026年c语言题目讲解(全优) 13页

2026年云南省丽江地区单招职业适应性考试题库.. 44页

2026年兰州石化职业技术学院单招职业倾向性测.. 44页

2026年单位组织廉政知识测试题(预热题) 14页

2026年员工廉政知识测试题及参考答案一套 14页

2026年学廉政知识测试题(综合题) 14页

2026年春考c语言考试题库参考答案 13页

ALC墙板蒸压加气轻质混凝土板材安装施工方案及.. 3页

腰椎康复操ppt 27页