下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 实验一栈和队列的应用

实验一栈和队列的应用.doc

实验一栈和队列的应用

承诺给一片净土
2017-10-07 0人阅读 举报 0 0 暂无简介

简介:本文档为《实验一栈和队列的应用doc》,可适用于职业岗位领域

实验一栈和队列的应用实验一栈和队列的应用一、实验目的、掌握栈的编写和应用、掌握队列的编写和应用二、实验内容、分别使用STL中的栈和自己编写的栈类实现序列的反转()简单修改下面代码实现使用STL中的栈进行序列的反转编译运行#include<stack>intmain()*Pre:TheusersuppliesanintegernandndecimalnumbersPost:ThenumbersareprintedinreverseorderUses:TheSTLclassstackanditsmethods*{intndoubleitemstack<double>numbersdeclaresandinitializesastackofnumberscout<<"Typeinanintegernfollowedbyndecimalnumbers"<<endl<<"Thenumberswillbeprintedinreverseorder"<<endlcin>>nfor(inti=i<ni){cin>>itemnumberspush(item)}cout<<endl<<endlwhile(!numbersempty()){cout<<numberstop()<<""numberspop()}cout<<endl}提示:()由于程序是用了STL(标准模板库可以简单的看成是一个函数库在其中有各种有用的类、函数和算法)栈在其中有实现。栈在STL中的实现用到了类模板也就是说其栈是独立于类型的模板提供参数化类型也就是能将类型名作为参数传递给接收方来建立类或函数。比如stack<double>numbe中就是声明rs了一个栈这个栈中存放的数据类型为double。()要使用c的输入输出需要加上几行语句如下因为cout和cin是在命名空间std中的:#include<iostream>usingnamespacestd()自己编写程序实现栈该栈可以用链表实现也可以用数组实现。C语言或者c描述都可以。该实现的栈要求至少具有()压栈()出栈()判断栈是否空()取栈顶元素值等功能。如果用数组实现该栈则该栈还需要具有下面函数()判断栈是否满()使用自己编写的栈进行序列的反转、自己编写程序实现队列并自己编写主程序测试该队列(选作)该队列可以使用链表实现也可以使用数组实现C语言或者c描述都可以。实现队列后再编写一个简单的主函数测试自己编写的队列的各个功能。要求:自己实现的队列至少需要有如下功能:()进队()出队()取队首元素()判断队列是否为空。如果是用数组实现的队列至少还需要具有下面的函数()判断队列是否满实验内容一的修改后结果如下:#include<stack>#include<iostream>usingnamespacestdintmain()*Pre:TheusersuppliesanintegernandndecimalnumbersPost:ThenumbersareprintedinreverseorderUses:TheSTLclassstackanditsmethods*{intndoubleitemstack<double>numbersdeclaresandinitializesastackofnumberscout<<"Typeinanintegernfollowedbyndecimalnumbers"<<endl<<"Thenumberswillbeprintedinreverseorder"<<endlcin>>nfor(inti=i<ni){cin>>itemnumberspush(item)}cout<<endl<<endlwhile(!numbersempty()){cout<<numberstop()<<""numberspop()}cout<<endl}实验内容二和三的源码如下:头文件部分:#ifndefZHANH#defineZHANHstructzhan{intMAXintnint*s}typedefstructzhan*seqstackseqstackvoidzhan(intm)intiszhan(seqstackpastack)voidcreatzhan(seqstackpastack)voidyazhan(seqstackpastack,inti)voidchuzhan(seqstackpastack)inttopzhan(seqstackpastack)voidnizhan(seqstackpastack)voidprintzhan(seqstackpastack)#endif函数算法实现部分:#include"zhanh"#include<stdlibh>#include<stdioh>#include<malloch>seqstackvoidzhan(intm)创建一个空栈{seqstackpastack=(seqstack)malloc(sizeof(structzhan))if(pastack!=){pastack>s=(int*)malloc(sizeof(int)*m)if(pastack>s){pastack>MAX=mpastack>n=returnpastack}elsefree(pastack)}printf("over")return}intiszhan(seqstackpastack)判断栈是否为空{return(pastack>n==)}voidcreatzhan(seqstackpastack)创建一个栈向栈中压入若干元素{intascanf("d",a)while(a!=){pastack>npastack>spastack>n=aif(pastack>n>=pastack>MAX)printf("够了别进栈了按结束进入吧~")scanf("d",a)}}voidyazhan(seqstackpastack,inti)压栈{if(pastack>n>=pastack>MAX){printf("不好意思这站满人了等下一站吧亲~")}else{pastack>npastack>spastack>n=i}}voidchuzhan(seqstackpastack)出栈{if(pastack>n==){printf("我都空了")}else{pastack>n=pastack>n}}inttopzhan(seqstackpastack)取栈顶元素{if(pastack>n==){printf("木有东西哦~无顶~")}else{return(pastack>spastack>n)}}将栈倒置即:逆栈voidnizhan(seqstackpastack){intifor(i=i<=pastack>ni){printf("d",pastack>si)printf("")}}voidprintzhan(seqstackpastack)打印栈{intbb=pastack>nwhile(b>){printf("d",pastack>sb)printf("")b},main函数部分:#include"zhanh"#include<stdlibh>#include<stdioh>voidmain(){intj,i,u,k,n=seqstackcprintf("亲~你最大要多大的栈就直接说吧")scanf("d",k)c=voidzhan(k)iszhan(c)printf("请输入栈(每输入一个按一次回车):")creatzhan(c)printf("我要打印栈")printzhan(c)printf("逆栈是:")nizhan(c)printf("你要压谁进站说吧亲~")scanf("d",j)yazhan(c,j)printf("我要打印栈")printzhan(c)printf("你要出战多少个就说吧~")scanf("d",u)for(i=i<ui){chuzhan(c)}printzhan(c)n=topzhan(c)printf("栈顶元素是:")printf("d",n)}实验总结:通过本次的实验让我深刻的理解了栈掌握了栈的基本应用其实也是对链表的进一步认识让我对接下来的学习又打下了基础。实验一栈和队列的应用姓名:xxx学号:xxx实验日期:第十一周周日

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/8

实验一栈和队列的应用

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利