欢迎来到天天文库
浏览记录
ID:22698035
大小:270.95 KB
页数:12页
时间:2018-10-31
《实验二栈队列实验报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、中国矿业大学计算机学院实验报告课程名称数据结构实验名称栈、队列的实现递归应用实验报告要求:1.实验目的2.实验内容3.实验步骤4.运行结果5.流程图6.实验体会一、实验目的1熟悉栈、队列这种特殊线性结构的特性。2熟练掌握栈、队列在顺序存储姑构和链表存储结构下的基本操作。二、实验要求1实验之前认真准备,编写好源程.序。2实验中认真调试稈序,对运行结果进行分析,注意程序的正确性和健壮性的验证。3不断积累程序的调试方法。三、实验内容1分别就栈的顺呼存储结构和链A存储结构实现栈的各种棊木操作。源程序:链式栈:#include2、ream>usingnamespacestd;//链式表intN=0;typedefstructStack{intdata;structStack氺next;}Stack,氺SLink;typedefstruct{SLinktop;intlength;}SqStack;voidlnitStack(SqStack&S){S.top=NULL;S.length=0;}//InitStackvoidPush(SqStack&S,int&e)Skinkp;p=newStack;p->data=e;p->next=S.top;S.top3、=p;N++;++S.1ength;cout<〈〃插入成功!〃<data;S.top=S.top-〉next;N—;—S.length;cout〈〈〃栈顶元素〃<〈e〈〈〃已删除!〃〈〈endl;}//PopvoidGetTop(SqStack&S,int&e){if(!S.top){cout<〈〃此栈为空栈!〃<e二S.4、top->data;cout〈〈e〈〈endl;}//GetTopvoidFind(SqStack&S,int&e){SLinkp;p=newStack;p=S.top;intt=0,n;n二S.]ength;do{if(n==0)break;if(e==p->data&&n!=0){t二1;break;}if(e!=p-〉data){p=p->next;n―;}}while(1);if(t==l)cout〈〈〃该栈中有要查找的值!〃〈〈endl;elsecout〈〈"该栈中没有要査找的值!〃<〈endl;}//Findvoi5、dClearStack(SqStack&S){if(!S.top)c()ut〈〈〃此桟已为空!"〈〈endl;S.top=NULL;N=0;cout〈〈〃此栈己清空完毕!〃〈<endl;}//ClearStackvoidmain(){SqStackStack;InitStack(Stack);intm,n,a,b,c,e,i=0;COUt〈<"请输入要建立的栈的大小cin〉〉n;do{cout〈〈"请选择操作:";conKCl进栈2出栈3查看栈顶元素4淸空栈5查找6退dT<〈endl;cin〉〉m;switch(m){case6、1:cout〈〈〃请输入进栈值:";cin»c;if(i==n){cout«,zSorry!!!〃〈<endl;cout〈〈"栈溢出!!!"〈〈endl;cout<〈〃此程序将退出!!!〃<<endl;exit(0);Push(Stack,c);i++;break;case2:Pop(Stack,a);i—;break;case3:cout<〈〃栈顶值为:〃;GetTop(Stack,b);break;case4:ClearStack(Stack);break;case5:cout〈〈"请输入想要查找的元素(仅能输入一次)ci7、n>>e;Find(Stack,e);break;default:C0Ut<〈"您所选择的操作错误,此程序将退出!z/«endl;exit(0);}}//switch}while(m!=58、9、m!=4110、m!=3111、ni!=212、13、m!=l);}运行结果:学习文件数《结构实势二梭、认列实验2-lDebixs实給2-1(裕式楼》入爱建立的钱的t青遙舞操?乍:法桟瑜入进栈值:2^选&操{乍:1迸桟2出栈3査看桟顶元素■驗乍,1逬栈请输入想耍查的元素舞翻查驗直、2翟S霪窮^罄“2出桟Hi4渭空栈S査找6退出4渭空栈S査找614、退出4情空栈S査找6退出4渭空栈5査找6退出4渭空栈S査找6退.出4渭空栈S查找6退.出4消空栈5查找6退出2由桟3査看桟顶元素2出栈3査看栈顶元素2出栈3査看栈顶元素C仅能输入一次):2出栈3査看栈顶元素3查看栈顶元素2出桟3查看桟顶元素顺序栈:#include〈iostr
2、ream>usingnamespacestd;//链式表intN=0;typedefstructStack{intdata;structStack氺next;}Stack,氺SLink;typedefstruct{SLinktop;intlength;}SqStack;voidlnitStack(SqStack&S){S.top=NULL;S.length=0;}//InitStackvoidPush(SqStack&S,int&e)Skinkp;p=newStack;p->data=e;p->next=S.top;S.top
3、=p;N++;++S.1ength;cout<〈〃插入成功!〃<data;S.top=S.top-〉next;N—;—S.length;cout〈〈〃栈顶元素〃<〈e〈〈〃已删除!〃〈〈endl;}//PopvoidGetTop(SqStack&S,int&e){if(!S.top){cout<〈〃此栈为空栈!〃<e二S.
4、top->data;cout〈〈e〈〈endl;}//GetTopvoidFind(SqStack&S,int&e){SLinkp;p=newStack;p=S.top;intt=0,n;n二S.]ength;do{if(n==0)break;if(e==p->data&&n!=0){t二1;break;}if(e!=p-〉data){p=p->next;n―;}}while(1);if(t==l)cout〈〈〃该栈中有要查找的值!〃〈〈endl;elsecout〈〈"该栈中没有要査找的值!〃<〈endl;}//Findvoi
5、dClearStack(SqStack&S){if(!S.top)c()ut〈〈〃此桟已为空!"〈〈endl;S.top=NULL;N=0;cout〈〈〃此栈己清空完毕!〃〈<endl;}//ClearStackvoidmain(){SqStackStack;InitStack(Stack);intm,n,a,b,c,e,i=0;COUt〈<"请输入要建立的栈的大小cin〉〉n;do{cout〈〈"请选择操作:";conKCl进栈2出栈3查看栈顶元素4淸空栈5查找6退dT<〈endl;cin〉〉m;switch(m){case
6、1:cout〈〈〃请输入进栈值:";cin»c;if(i==n){cout«,zSorry!!!〃〈<endl;cout〈〈"栈溢出!!!"〈〈endl;cout<〈〃此程序将退出!!!〃<<endl;exit(0);Push(Stack,c);i++;break;case2:Pop(Stack,a);i—;break;case3:cout<〈〃栈顶值为:〃;GetTop(Stack,b);break;case4:ClearStack(Stack);break;case5:cout〈〈"请输入想要查找的元素(仅能输入一次)ci
7、n>>e;Find(Stack,e);break;default:C0Ut<〈"您所选择的操作错误,此程序将退出!z/«endl;exit(0);}}//switch}while(m!=5
8、
9、m!=41
10、m!=31
11、ni!=2
12、
13、m!=l);}运行结果:学习文件数《结构实势二梭、认列实验2-lDebixs实給2-1(裕式楼》入爱建立的钱的t青遙舞操?乍:法桟瑜入进栈值:2^选&操{乍:1迸桟2出栈3査看桟顶元素■驗乍,1逬栈请输入想耍查的元素舞翻查驗直、2翟S霪窮^罄“2出桟Hi4渭空栈S査找6退出4渭空栈S査找6
14、退出4情空栈S査找6退出4渭空栈5査找6退出4渭空栈S査找6退.出4渭空栈S查找6退.出4消空栈5查找6退出2由桟3査看桟顶元素2出栈3査看栈顶元素2出栈3査看栈顶元素C仅能输入一次):2出栈3査看栈顶元素3查看栈顶元素2出桟3查看桟顶元素顺序栈:#include〈iostr
此文档下载收益归作者所有