资源预览内容
第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
第9页 / 共9页
亲,该文档总共9页全部预览完了,如果喜欢就下载吧!
资源描述
为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划上机报告栈与队列实验二堆栈和队列基本操作的编程实现【实验目的】堆栈和队列基本操作的编程实现要求:堆栈和队列基本操作的编程实现,掌握堆栈和队列的建立、进栈、出栈、进队、出队等基本操作的编程实现,存储结构可以在顺序结构或链接结构中任选,也可以全部实现。也鼓励学生利用基本操作进行一些应用的程序设计。【实验性质】验证性实验【实验内容】内容:把堆栈和队列的顺序存储和链表存储的数据进队、出队等运算(转载于:写论文网:上机报告栈与队列)其中一部分进行程序实现。可以实验一的结果自己实现数据输入、数据显示的函数。利用基本功能实现各类应用,如括号匹配、回文判断、事物排队模拟、数据逆序生成、多进制转换等。【实验分析、说明过程】【思考问题】【实验小结】(总结本次实验的重难点及心得、体会、收获)【附录-实验代码】一、实验目的和要求(1)理解栈和队列的特征以及它们之间的差异,知道在何时使用那种数据结构。(2)重点掌握在顺序栈上和链栈上实现栈的基本运算算法,注意栈满和栈空的条件。(3)重点掌握在顺序队上和链队上实现队列的基本运算算法,注意循环队队列满和队空的条件。(4)灵活运用栈和队列这两种数据结构解决一些综合应用问题。二、实验环境和方法实验方法:综合运用课本所学的知识,用不同的算法实现在不同的程序功能。结合指导老师的指导,解决程序中的问题,正确解决实际中存在的异常情况,逐步改善功能。根据实验内容,编译程序。实验环境:WindowsxpVisualC+三、实验内容及过程描述实验步骤:进入VisualC+集成环境。输入自己编好的程序。检查一遍已输入的程序是否有错,如发现有错,及时改正。进行编译和连接。如果在编译和连接过程中发现错误,频幕上会出现“报错信息”,根据提示找到出错位置和原因,加以改正。再进行编译,如此反复直到不出错为止。运行程序并分析运行结果是否合理。在运行是要注意当输入不同的数据时所得结果是否正确,应运行多次,分别检查在不同情况下结果是否正确。实验内容:编译以下题目的程序并调试运行。1)、编写一个程序,实现顺的各种基本运算,并在此基础上设计一程序并完成如下功能:初始化栈s;判断栈s是否非空;序栈个主依次进栈元素a,b,c,d,e;判断栈s是否非空;输出出栈序列;判断栈s是否非空;释放栈。图Proj3_1工程组成本工程Proj3_1的组成结构如图所示。本工程的模块结构如图所示。图中方框表示函数,方框中指出函数名,箭头方向表示函数间的调用关系。图Proj3_1工程的程序结构图其中包含如下函数:InitStack(SqStack*&s)/初始化栈SDestroyStack(SqStack*&s)/销毁栈sStackEmpty(SqStack*s)/判断栈空Push(SqStack*&s,ElemTypee)/进栈Pop(SqStack*&s,ElemType&e)/出栈GetTop(SqStack*s,ElemType&e)/取栈顶元素对应的程序如下:/文件名:#include#include#defineMaxSize100typedefcharElemType;typedefstructElemTypedataMaxSize;inttop;/栈顶指针SqStack;voidInitStack(SqStack*&s)/初始化栈Ss=(SqStack*)malloc(sizeof(SqStack);s-top=-1;/栈顶指针置为-1voidDestroyStack(SqStack*&s)/销毁栈sfree(s);boolStackEmpty(SqStack*s)/判断栈空return(s-top=-1);boolPush(SqStack*&s,ElemTypee)/进栈if(s-top=MaxSize-1)/栈满的情况,即栈上溢出returnfalse;s-top+;/栈顶指针增1s-datas-top=e;/元素e放在栈顶指针处returntrue;boolPop(SqStack*&s,ElemType&e)/出栈if(s-top=-1)/栈为空的情况,即栈下溢出returnfalse;e=s-datas-top;/取栈顶指针元素的元素s-top-;/栈顶指针减1returntrue;boolGetTop(SqStack*s,ElemType&e)/取栈顶元素if(s-top=-1)/栈为空的情况,即栈下溢出returnfalse;e=s-datas-top;/取栈顶指针元素的元素returntrue;设计程序如下/文件名:#include#include#defineMaxSize100typedefcharElemType;typedefstructElemTypedataMaxSize;inttop;/栈顶指针SqStack;externvoidInitStack(SqStack*&s);externvoidDestroyStack(SqStack*&s);externboolStackEmpty(SqStack*s);externboolPush(SqStack*&s,ElemTypee);externboolPop(SqStack*&s,ElemType&e);externboolGetTop(SqStack*s,ElemType&e);voidmain()ElemTypee;SqStack*s;printf(栈s的基本运算如下:n);printf(1)初始化栈sn);InitStack(s);printf(2)栈为%sn,(StackEmpty(s)?空:非空);printf(3)依次进栈元素a,b,c,d,en);Push(s,a);Push(s,b);Push(s,c);Push(s,d);Push(s,e);printf(4)栈为%sn,(StackEmpty(s)?空:非空);printf(5)出栈序列:);while(!StackEmpty(s)Pop(s,e);printf(%c,e);printf(n);printf(6)栈为%sn,(StackEmpty(s)?空:非空);printf(7)释放栈n);DestroyStack(s);运行结果如下:2)、编写一个程序,实现链栈的各种基本运算,并在此基础上设计一个主程序并完成如下功能:初始化链栈s;判断链栈s是否非空;依次进栈a,b,c,d,e;判断链栈s是否非空;输出链栈长度;输出从栈底到栈顶元素;输出出队序列;判断链栈s是否非空;图Proj3_2工程组成释放队列。本工程Proj3_2的组成结构如图所示。本工程的模块结构如图所示。图中方框表示函数,方框中指出函数名,箭头方向表示函数间的调用关系。图Proj3_2工程的程序结构图其中包含如下函数:InitStack(LiStack*&s)/初始化栈sDestroyStack(LiStack*&s)/销毁栈StackEmpty(LiStack*s)/判断栈是否为空Push(LiStack*&s,ElemTypee)/进栈Pop(LiStack*&s,ElemType&e)/出栈GetTop(LiStack*s,ElemType&e)/取栈顶元素对应的程序如下:/文件名:#include#includetypedefcharElemType;typedefstructlinknodeElemTypedata;/数据域目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号