stack---停车场
来源:互联网 发布:图后期制作软件 编辑:程序博客网 时间:2024/04/26 23:04
#define stacksize 5#include<cstdio>#include<iostream>#include<malloc.h>#define LEN sizeof(linked_queue)using namespace std;void wait(int);typedef struct sqstack{ int data[stacksize]; int top;}SqstackTp;SqstackTp stopstack{{},-1}; //for 0 - 9typedef struct linked_queue //waiting queue{ int data; struct linked_queue *next;}LqueueTp;LqueueTp waitqueue;LqueueTp *fron=NULL,*rear=NULL;int queuenum=0;void gooutcar(int carnum){ int i=0; while(stopstack.data[i]!=carnum&&i<=stopstack.top) { i++; //得出车正确位置来; } if(stopstack.data[i]<=stopstack.top) { cout<<"没有查询到该车辆的信息"; }else{ for(int j=i;j<=stopstack.top;j++) //将该车删除 { int temp=j+1; stopstack.data[j]=stopstack.data[temp]; } cout<<carnum<<"离开停车场,"; if(fron&&fron->next) //由于出队列导致的队列空 font后边rear所以加两个判断 { stopstack.data[stopstack.top]=fron->next->data; fron=fron->next; cout<<stopstack.data[stopstack.top]<<"由便捷车道进入停车场"<<endl; } else{ cout<<"便捷车道空,无车辆进入停车场"<<endl; stopstack.top--; }}}void stopcar (int carnum){if(stopstack.top==stacksize-1){ cout<<"停车栈满,"; wait(carnum); cout<<carnum<<"进入便捷车道"<<endl;}else{ stopstack.top++; stopstack.data[stopstack.top]=carnum; cout<<carnum<<"由外界进入停车场"<<endl;}}void tip(){ int flag; cout<<" *******************************\n"<<endl; cout<<" 停车按1 出车按2\n 显示停车栈3 显示便捷车道4\n 退出系统按0 \n\n"; while(cin>>flag) { if(flag==1) { int carnum; cout<<"请输入停车车牌号\n"; cin>>carnum; stopcar(carnum); } else if(flag==2) { int carnum; cout<<"请输入出车车牌号\n"; cin>>carnum; gooutcar(carnum); } else if(flag==3) { cout<<"停车栈|"; for(int i=0;i<=stopstack.top;i++) cout<<stopstack.data[i]<<" |"; cout<<endl; } else if(flag==4) { LqueueTp *p3=fron; cout<<"便捷车道|"; if(p3) {while(p3->next!=NULL) { p3=p3->next; cout<<p3->data<<" |"; } } cout<<endl; } if(flag==0) break;// cout<<"\n *****停车1*****出车2*****停车栈3*****便捷车道4*****退出系统按0*** \n"; }}void wait(int carnum){ if(queuenum==0) { queuenum++; rear=fron=(LqueueTp *)malloc(sizeof(LqueueTp)); LqueueTp *p1; p1=(LqueueTp *)malloc(sizeof(LqueueTp)); p1->data=carnum; p1->next=NULL; rear->next=p1; rear=p1;// cout<<"1中现实front"<<front->data;// cout<<"1中现实rear"<<rear->data;// cout<<"1中现实frontnext"<<front->next->data; } else { queuenum++; LqueueTp *p1; p1=(LqueueTp *)malloc(sizeof(LqueueTp)); p1->data=carnum; p1->next=NULL;// cout<<"2中现实p1next"<<p1->next->data;// cout<<"2中现实p1data"<<p1->data; rear->next=p1; rear=p1; }}int main(){ tip(); return 0;}
阅读全文
0 0
- stack---停车场
- 停车场
- 停车场
- 停车场
- 停车场
- 停车场
- 停车场
- 停车场
- 停车场
- 停车场收费
- 停车场~c++
- 停车场问题
- 停车场程序设计
- 停车场管理
- 停车场模拟
- 停车场模拟
- 停车场模拟
- 停车场模拟
- Java学习笔记-《Java程序员面试宝典》-第四章基础知识-4.5字符串与数组(4.5.4-4.5.6)
- Web Notification Demo
- spring之注入对象
- 第三方登录资料
- ctrl键
- stack---停车场
- mysql重置密码 忘记root密码
- SpringCloud简介
- 学习linux内核(四)
- 文件加载
- android_Activity运行时屏幕方向与显示方式
- docker 部署odoo 访问宿主机数据库
- 江苏省赛 --- H题 【树的直径+思维】
- 获取项目编译后class文件绝对路径