栈和队列实验报告心得体会

上传人:bin****86 文档编号:60118416 上传时间:2018-11-14 格式:DOCX 页数:13 大小:19.60KB
返回 下载 相关 举报
栈和队列实验报告心得体会_第1页
第1页 / 共13页
栈和队列实验报告心得体会_第2页
第2页 / 共13页
栈和队列实验报告心得体会_第3页
第3页 / 共13页
栈和队列实验报告心得体会_第4页
第4页 / 共13页
栈和队列实验报告心得体会_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《栈和队列实验报告心得体会》由会员分享,可在线阅读,更多相关《栈和队列实验报告心得体会(13页珍藏版)》请在金锄头文库上搜索。

1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划栈和队列实验报告心得体会一、实验目的和要求(1)理解栈和队列的特征以及它们之间的差异,知道在何时使用那种数据结构。(2)重点掌握在顺序栈上和链栈上实现栈的基本运算算法,注意栈满和栈空的条件。(3)重点掌握在顺序队上和链队上实现队列的基本运算算法,注意循环队队列满和队空的条件。(4)灵活运用栈和队列这两种数据结构解决一些综合应用问题。二、实验环境和方法实验方法:综合运用课本所学的知识,用不同的算法实现在不同的程序功能。结合指导老师的指导,解决程序中的问题,正确解决实际中存在的异常情况,

2、逐步改善功能。根据实验内容,编译程序。实验环境:WindowsxpVisualC+三、实验内容及过程描述实验步骤:进入VisualC+集成环境。输入自己编好的程序。检查一遍已输入的程序是否有错,如发现有错,及时改正。进行编译和连接。如果在编译和连接过程中发现错误,频幕上会出现“报错信息”,根据提示找到出错位置和原因,加以改正。再进行编译,如此反复直到不出错为止。运行程序并分析运行结果是否合理。在运行是要注意当输入不同的数据时所得结果是否正确,应运行多次,分别检查在不同情况下结果是否正确。实验内容:编译以下题目的程序并调试运行。1)、编写一个程序,实现顺的各种基本运算,并在此基础上设计一程序并完

3、成如下功能:初始化栈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,E

4、lemType&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);boolStack

5、Empty(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(SqSta

6、ck*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(

7、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);Pus

8、h(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是否非空;输出链栈长度;输出从栈底到栈顶元素;输出出

9、队序列;判断链栈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)/取栈顶元素对应

10、的程序如下:/文件名:#include#includetypedefcharElemType;typedefstructlinknodeElemTypedata;/数据域实验总结报告栈和队列学号:姓名:时间:一、目的1.做实验的目的加深对线性结构栈和队列的理解,学会定义栈和队列的存储结构,加强对栈和队列操作机制的理解,掌握栈和队列的基本操作,了解栈和队列的一些应用。2.撰写实验报告的目的对本次实验情况进行总结,加强对实验内容的理解,对实验过程有一个系统的认识,从中获得本次试验的经验,并对实验结果进行适当的分析,加深对栈和队列的理解和认识。二、内容1.说明实验次数及实验内容本次实验用一次实验课时

11、完成实验内容:、编写函数CreatStack_sq(),DestoryStack_sq(),Push_sq(),Pop_sq(),StackEmpty_sq()和StackTraverse_sq(),分别完成创建空栈,销毁栈,入栈,出栈,判断栈是否为空,遍历栈底到栈顶依次打印栈内元素等功能(不要修改原栈),完成后进行测试。测试要求:在main中,建立栈;判断栈是否为空;将09入栈;将栈顶两个元素出栈,两元素求和后再入栈;从栈底到栈顶依次打印元素,再从栈顶到栈底打印元素;销毁栈。voidCreatStack_sq(SqStack&S,intmsize=STACK_INIT_SIZE).voidD

12、estoryStack_sq(SqStack&S).voidPush_sq(SqStack&S,ElementTypee).boolPop_sq(SqStack&S,ElementType&e).boolStackEmpty_sq(SqStackS).boolStackTraverse_sq(SqStackS).、编写函数,CreateQueue_L(),DestoryQueue_L(),EnQueue_L(),DeQueue_L(),分别完成创建队列,销毁队列,入队列,出队列等操作,完成后进行测试。测试要求:在主程序中,建立队列,将09依次入队列,按入队列顺序出队列并打印,销毁队列。void

13、CreateQueue_L(LinkQueue&Q)voidDestoryQueue_L(LinkQueue&Q)voidEnQueue_L(LinkQueue&Q,inte)boolDeQueue_L(LinkQueue&Q,int&e)、回文是指正读反读均相同的字符序列,如”abba”和”abdba”均是回文,但”good”不是回文。根据第四章栈和队列所学内容,试写一个算法判定给定的字符向量是否为回文。测试数据:char*ch=“abccba”;char*ch=“abccbd”;、(附加题)编写函数voidKnapsack(intw,intT,intn),完成背包求解问题。测试数据:w6=2,8,6,5,1,4;2.做实验完成情况实验内容在实

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 总结/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号