1 / 13
文档名称:

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

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

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

分享

预览

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

上传人:iris028 2019/4/27 文件大小:88 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湖北恩施州巴东县纪委监委机关选调工作人.. 50页

2025湖南益阳大通湖区法院招聘聘用制司法警务.. 49页

2025舟山市定海区机关事务管理中心编外招聘1人.. 46页

2025西藏阿里地区民政局招聘1人备考题库附答案.. 44页

2025通辽经济技术开发区社区工作者招聘35人考.. 50页

2025重庆建工集团股份有限公司招聘1人备考题库.. 47页

2026云南怒江州医疗卫生机构引进紧缺卫生专业.. 48页

2026四川成都理工大学附属中学(成都树德中学.. 45页

2026山东大学辅导员招聘24人考试题库附答案解.. 47页

2026年(完整版)C语言试题(预热题) 13页

2026年c语言上机考试题库及答案(全优) 13页

2026年c语言专科期末测试题(历年真题) 13页

2026年c语言基础考试题库(黄金题型) 13页

2026年c语言期末考试题库及答案(名师系列) 13页

2026年c语言期末试题(b卷) 13页

2026年c语言理论考试题(全国通用) 13页

2026年c语言知识试题(考试直接用) 13页

2026年C语言程序设计理论试题库及答案(新) 13页

2026年c语言算法考试题库及答案(名校卷) 13页

2026年c语言编程练习题附答案 13页

2026年c语言设计考试题库及答案参考 13页

2026年c语言试题期末word版 13页

2026年专升本C语言真题及答案(名校卷) 13页

2026年中医住培带教师资理论考核题库100道(全.. 40页

2026年中国城市建设史复习题100道含答案(a卷.. 44页

2024年大连市直属机关遴选公务员笔试真题汇编.. 66页

2025年湖南省建设工程工程量清单计价办法(新).. 51页

六年级英语上册第一单元测试题-(含答案) 9页

喝酒给老婆的检讨书 6页

刮板式花生脱壳机结构设计 39页