1 / 21
文档名称:

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

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

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

分享

预览

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

上传人:梅花书斋 2020/10/30 文件大小:63 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(){ SqStacka; SqStack*s=&a; SElem

最近更新

2025年云南旅游职业学院辅导员考试笔试真题汇.. 29页

2026年员工廉政知识测试题及答案(各地真题).. 14页

2025年新干县幼儿园教师招教考试备考题库附答.. 31页

2026年国开电大外国文学形考题库a4版 40页

2026年天津交通职业学院单招职业适应性测试模.. 44页

2025广西南宁市良庆区那陈镇卫生院乡聘村用乡.. 35页

2025贵州遵义市中医院(遵义医药高等专科学校.. 36页

2025黄石西塞山区住房保障局招聘公益性岗2人备.. 36页

2026年期末c语言考试题(达标题) 13页

2026年叉车厂内证考试题库(夺分金卷) 15页

2026年肇庆医学高等专科学校单招职业适应性考.. 45页

2026年黑龙江职业学院单招职业技能考试题库附.. 45页

2026年政策银行考试题库必考题 41页

云南省2026年面向东北林业大学选调优秀毕业生.. 51页

项目详细规划建议书 6页

项目综检站实施建议书 5页

音乐行业营销策略建议书 6页

2026年洛阳电工招聘考试题库附答案 40页

降耗节能低碳生产策略建议书 6页

阅读技巧建议书 5页

长安镇经济振兴建议书 5页

鉴定所司法改进建议书 6页

酒店员工培训建议书 5页

道路安全改善建议书 5页

远嫁女性情感支持建议书 5页

车险监管模式创新建议书 6页

赔偿金支付建议书 6页

购房准备建议书 6页

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

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