资源描述:
《实验报告栈与队列》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、肇庆学院计算机系实验报告格式肇庆学院计算机科学系实验报告专业:计算机科学与技术班级:科技1班姓名:汪勇学号:201124131103课程名称:数据结构学年:2011--2012学期:2课程类别:专业必修l实验内容:实验时间:2012年4月25日1.编写函数,采用链式存储实现栈的初始化、入栈、出栈操作。2.编写函数,采用顺序存储实现栈的初始化、入栈、出栈操作。3.编写函数,采用链式存储实现队列的初始化、入队、出队操作。4.编写函数,采用顺序存储实现队列的初始化、入队、出队操作。5.编写一个主函数,在主函数中设计一个简单的菜单,分别调试上述算法。l实验目的及要求:1.掌
2、握栈、队列的思想及其存储实现2.掌握栈、队列的常见算法的程序实现l实验内容、方法与步骤:(使用附页填写并附在本页后)详见附页l实验结果:l小结:分数:批阅老师:200年月日第页/共页肇庆学院计算机科学系实验报告(附页)#include#include#defineMAXSIZE256typedefintdatatype;//顺序栈typedefstruct{datatypedata[MAXSIZE];inttop;}SeqStack;voidmenu();SeqStack*init_SeqStack();intEmpty_Seq
3、Stack(SeqStack*S);intPush_SeqStack(SeqStack*S,datatypex);intPop_SeqStack(SeqStack*S,datatype*p);datatypeTop_SeqStack(SeqStack*S);voidconversion(intn,intr);//链栈typedefstructnode{datatypedata;structnode*next;}StackNode,*LinkStack;voidmenu2();LinkStackInit_LinkStack();intEmpty_LinkStack(L
4、inkStacktop);LinkStackPush_LinkStack(LinkStacktop,datatypex);LinkStackPop_LinkStack(LinkStacktop,datatype*s);//顺序队typedefstruct{datatypedata[MAXSIZE];intfront,rear;intnum;}C_SeQueue;voidmenu3();C_SeQueue*init_SeQueue();intIn_SeQueue(C_SeQueue*q,datatypex);intOut_SeQueue(C_SeQueue*q,dat
5、atype*p);intEmpty_SeQueue(C_SeQueue*q);//链队typedefstructqnode{datatypedata;structqnode*next;}QNode;typedefstruct{QNode*front,*rear;}LQueue;voidmenu4();LQueue*Init_LQueue();voidIn_LQueue(LQueue*q,datatypex);intEmpty_LQueue(LQueue*q);intOut_LQueue(LQueue*q,datatype*s);intmain(){inttemp;d
6、o{printf("==============================");printf("t1.顺序栈t2.链栈t3.顺序队t4.链队");printf("请选择:");scanf("%d",&temp);intn,m=1;switch(temp){case1:{SeqStack*S;/*clrscr();*/while(m){menu();scanf("%d",&n);switch(n){case1:S=init_SeqStack();break;case2:{inti,success;success=Empty_SeqStack(
7、S);if(success!=1){for(i=0;i<=S->top;i++){printf("%5d",S->data[i]);}}elseprintf("emptystack!");break;}case3:{inti,success;datatypex;printf("pleaseinputx:");scanf("%d",&x);success=Push_SeqStack(S,x);if(success==1){for(i=0;i<=S->top;i++){printf("%5d",S->data[i]);}}elseprintf("stackf