1 / 22
文档名称:

栈的操作(实验报告).doc

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

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

分享

预览

栈的操作(实验报告).doc

上传人:tswng35 2019/1/17 文件大小:191 KB

下载得到文件列表

栈的操作(实验报告).doc

文档介绍

文档介绍::熟悉栈的特点(先进后出)及栈的基本操作,如入栈、出栈等,掌握栈的基本操作在栈的顺序存储结构和链式存储结构上的实现;熟悉队列的特点(先进先出)及队列的基本操作,如入队、出队等,掌握队列的基本操作在队列的顺序存储结构和链式存储结构上的实现。实验要求:复****课本中有关栈和队列的知识;用C语言完成算法和程序设计并上机调试通过;撰写实验报告,给出算法思路或流程图和具体实现(源程序)、算法分析结果(包括时间复杂度、空间复杂度以及算法优化设想)、输入数据及程序运行结果(必要时给出多种可能的输入数据和运行结果)。基础实验[实验1]栈的顺序表示和实现实验内容与要求:编写一个程序实现顺序栈的各种基本运算,并在此基础上设计一个主程序,完成如下功能:(1)初始化顺序栈(2)插入元素(3)删除栈顶元素(4)取栈顶元素(5)遍历顺序栈(6)置空顺序栈分析:栈的顺序存储结构简称为顺序栈,它是运算受限的顺序表。对于顺序栈,入栈时,首先判断栈是否为满,栈满的条件为:p->top==MAXNUM-1,栈满时,不能入栈;否则出现空间溢出,引起错误,这种现象称为上溢。出栈和读栈顶元素操作,先判栈是否为空,为空时不能操作,否则产生错误。通常栈空作为一种控制转移的条件。注意:(1)顺序栈中元素用向量存放(2)栈底位置是固定不变的,可设置在向量两端的任意一个端点(3)栈顶位置是随着进栈和退栈操作而变化的,用一个整型量top(通常称top为栈顶指针)来指示当前栈顶位置参考程序:#include<>#include<>#defineMAXNUM20#defineElemTypeint/*定义顺序栈的存储结构*/typedefstruct{ ElemTypestack[MAXNUM]; inttop;}SqStack;/*初始化顺序栈*/voidInitStack(SqStack*p){ if(!p) printf("Eorror"); p->top=-1;}/*入栈*/voidPush(SqStack*p,ElemTypex){ if(p->top<MAXNUM-1) { p->top=p->top+1; p->stack[p->top]=x; } else printf("Overflow!\n");}/*出栈*/ElemTypePop(SqStack*p){ ElemTypex; if(p->top!=0) { x=p->stack[p->top]; printf("以前的栈顶数据元素%d已经被删除!\n",p->stack[p->top]); p->top=p->top-1; return(x); } else { printf("Underflow!\n"); return(0); }}/*获取栈顶元素*/ElemTypeGetTop(SqStack*p){ ElemTypex; if(p->top!=0) { x=p->stack[p->top]; return(x); } else { printf("Underflow!\n"); return(0); }}/*遍历顺序栈*/voidOutStack(SqStack*p){ inti; printf("\n"); if(p->top<0) printf("这是一个空栈!"); printf("\n"); for(i=p->top;i>=0;i--) printf("第%d个数据元素是:%6d\n",i,p->stack[i]);}/*置空顺序栈*/voidsetEmpty(SqStack*p){p->top=-1;}/*主函数*/main(){SqStack*q; inty,cord;ElemTypea; do{ printf("\n"); printf("第一次使用必须初始化!\n"); printf("\n"); printf("\n主菜单\n"); printf("\n1初始化顺序栈\n"); printf("\n2插入一个元素\n"); printf("\n3删除栈顶元素\n"); printf("\n4取栈顶元素\n"); printf("\n5置空顺序栈\n"); printf("\n6结束程序运行\n"); printf("\n--------------------------------\n"); printf("请输入您的选择(1,2,3,4,5,6)"); scanf("%d",&cord); printf("\n"); switch(cord) { case1: { q=(SqStack*)malloc(sizeof(SqStack)); InitStack(q); OutStack(q); }break; case2: { pri

最近更新

高等学校教师岗前培训考试暨教师资格笔试题库.. 22页

高等学校教师岗前培训考试暨教师资格笔试题库.. 22页

2024年霸气男人味网名(精选250个) 13页

领导安全生产月致辞 10页

重阳节主题班会活动方案及策划 12页

车辆委托拍卖合同 52页

2024年公务员考试《言语理解与表达》题库精品.. 178页

赞助商冬季篮球赛开幕式致辞5篇 8页

质检实践报告总结 16页

2024年《日常生活突发事故急救知识及处理方法.. 33页

2024年中职职业院校(学前教育及幼儿心理学)技.. 41页

2024年临床执业医师考试真题【突破训练】 29页

2024年临床执业医师考试真题(夺冠系列) 29页

2024年集体土地租赁合同13篇(荐) 39页

2024年公务员考试《数量关系题》题库含完整答.. 106页

2024年公务员考试《言语理解与表达》题库及参.. 171页

2024年公务员考试常识判断题200道【黄金题型】.. 81页

2024年公务员考试常识判断题200道附答案(a卷.. 80页

2024年难忘的腊八节周记500字 3页

2024年吉林延边州直部分事业单位招聘急需人才.. 161页

2024年吉林省延边事业单位招聘历年高频难、易.. 165页

2024年校园招聘考试笔试试题500道(名校卷) 251页

2024年高校教师岗前培训《高等教育学》题目10.. 24页

七年级诗词大会题库带答案(考试直接用) 8页

公务员考试《判断推理题》题库含答案【研优卷.. 171页

公务员考试《数量关系题》题库附答案(夺分金.. 107页

2024年除夕的日记作文300字三篇 3页

叉车保险单范本 3页

测绘成果涉密密级范围 3页

标书制作流程分享ppt课件 25页