实验三 栈和队列的应用

实验三 栈和队列的应用

ID:38697497

大小:62.50 KB

页数:10页

时间:2019-06-17

实验三  栈和队列的应用_第1页
实验三  栈和队列的应用_第2页
实验三  栈和队列的应用_第3页
实验三  栈和队列的应用_第4页
实验三  栈和队列的应用_第5页
资源描述:

《实验三 栈和队列的应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、一、实验目的1掌握栈的数据类型描述及栈的特点;2掌握栈的顺序存储结构的特点及算法描述;3掌握队列的数据类型描述及链式存储结构的特点和算法描述。二、实验内容停车场管理。设有一个可以停放n辆汽车的狭长停车场(先进后出),它只有一个大门可以供车辆进出。车辆按到达停车场时间的先后依次从停车场最里面向大95E8口处停放(最先到达的第一辆车停放在停车场的最里面)。如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车离开,则排在便道上的第一辆车就可以进入停车场。停车场内如有某辆车要离开,在它之后进入停车场的车都必须先退出停车场

2、为它让路,待其开出停车场后,这些车再按原来的次序进停车场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车没进停车场就要离开,允许其离开,不收停车费,并且仍然保持在便道上的车辆次序。试编程模拟停车场管理。三、算法描述提示:可以将停车场定义成一个顺序栈s1,便道定义成一个链队列q,而停车场中的某辆车要离开,则在它后面进停车场的车必须让道,让其离开,故还必须有一个临时的顺序栈s2,存放让道的车辆。当有车辆进停车场时,直接进入s1栈,若s1栈满,则进入便道(链队列q)。若有s1中车辆x离开时,先让在x后面进栈的车从s

3、1退栈并进栈到s2中,让x离开并收取停车费,然后,再把s2中的所有车辆退栈并重新进入s1栈,最后,将链队列q的队头车辆进栈到s1中并删除队头车辆。若有链队列q(便道)中的车辆y离开时,从链队列中删除该车辆即可,不收停车费。车辆的数据可以表示为(车辆编号,到达/离开时间)。四.程序清单:#includeusingnamespacestd;constintStackSize=5;classSeqStack{public:SeqStack(){top=-1;}~SeqStack(){};voidPush(intx);voidPus

4、h2(intx);int*Return();intPop(inty);intCount();voidPrintStack();private:intdata[StackSize];inttop;};//入栈voidSeqStack::Push(intx){if(top>=StackSize-1)throw"上溢";for(inti=0;i<=top+1;i++){if(data[i]==x){cout<<"该车牌已经存在!请重新输入:";i=-1;cin>>x;}}top++;data[top]=x;}//返回数组地址int*SeqStack:

5、:Return(){returndata;}//临时栈voidSeqStack::Push2(intx){top++;data[top]=x;}//输出函数voidSeqStack::PrintStack(){for(inti=0;i<=top;i++)cout<<"位置为"<

6、(top==-1)data[top+1]=123456789;returnx;}//数数intSeqStack::Count(){returntop;}//队列structNode{intdata;Node*next;};classLinkQueue{public:LinkQueue();voidEnQueue(intx,int*q);voidxzDeQueue(intx);intCount();intDeQueue();private:Node*front,*rear;};//构造函数LinkQueue::LinkQueue(){Node*s

7、=newNode;s->next=NULL;front=rear=s;}//入队voidLinkQueue::EnQueue(intx,int*q){Node*s=newNode;Node*p=newNode;p=front;while(p){if(p->data==x){cout<<"便道已有该车牌号,请重新输入:";cin>>x;for(inti=0;i<5;i++){if(x==q[i]){cout<<"停车场已有该车牌号,请重新输入:";cin>>x;i=-1;}}p=front;}p=p->next;}s->data=x;s->nex

8、t=NULL;rear->next=s;rear=s;}//出队intLinkQueue::DeQueue(){if(front==rear)thro

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。