数据结构实验之队列一:排队买饭
来源:互联网 发布:韵乐x5效果器软件 编辑:程序博客网 时间:2024/05/30 12:31
一开始交WA,写了个输出队列元素的函数调试了一下,原来是删数的时候位置弄反了。
#include<iostream>#include<algorithm>#include<string>using namespace std;const int maxn=100000+10;typedef struct{ int *data; int frot, rear;}Queue;void initqueue(Queue &q)///队列初始化{ q.data=new int [maxn]; q.frot=0; q.rear=-1;}void display(Queue &q)///从头到尾输出元素数据{ for(int i=q.frot;i<=q.rear;i++) cout<<q.data[i]<<" ";}void enqueue(Queue &q, int key)///进队操作队尾元素{ q.rear++; q.data[q.rear]=key;}void del(Queue &q, int k)///删除k位置上的元素{ q.frot++; for(int i=q.frot+k-2;i>=q.frot;i--) q.data[i]=q.data[i-1];}void dequeue(Queue &q)///出队操作队首元素{ q.frot++;}int main(){ ios::sync_with_stdio(false); int n; cin>>n; Queue q; initqueue(q); for(int i=0;i<n;i++) cin>>q.data[++q.rear]; int T; cin>>T; while(T--) { string s; cin>>s; if(s=="JOIN") { int x; cin>>x; enqueue(q, x); // display(q); } else if(s=="LEAVE") { int k; cin>>k; del(q, k); // display(q); } else if(s=="ASK") { int p; cin>>p; cout<<q.data[q.frot+p-1]<<endl; } else if(s=="FINISH") { int d; cin>>d; q.frot=q.frot+d; // display(q); } else if(s=="LENGTH") { cout<<q.rear-q.frot+1<<endl; } } return 0;}
0 0
- 数据结构实验之队列一:排队买饭(队列)
- 数据结构实验之队列一:排队买饭
- 数据结构实验之队列一:排队买饭
- SDUT 2335 - 数据结构实验之队列一:排队买饭
- 【2135】数据结构实验之队列一:排队买饭 sdutOJ
- SDUTOJ 2135--数据结构实验之队列一:排队买饭
- 数据结构实验之队列一:排队买饭
- 数据结构实验之队列一:排队买饭
- 数据结构实验之队列一:排队买饭
- SDUT OJ 数据结构实验之队列一:排队买饭
- 数据结构实验之队列一:排队买饭
- SDUT 2135 数据结构实验之队列一:排队买饭
- 数据结构实验之队列一:排队买饭
- 数据结构实验之队列一:排队买饭
- 数据结构实验之队列一:排队买饭
- 数据结构实验之队列一:排队买饭 SDUT
- 数据结构实验之队列一:排队买饭
- 数据结构实验之队列一:排队买饭
- iOS开发 程序后台上传位置CLLocationManager
- ACM--大数阶乘--HDOJ 1042--N!--Java
- html5最新浏览器支持程度比较
- scanning for model in Activeandroid—TableInfo TypeSerializer
- struts2登录验证返回页面跳转
- 数据结构实验之队列一:排队买饭
- Html屏蔽鼠标键盘的几种办法
- MySQL Cluster初步学习资料整理
- 验证手机号的正则表达式
- POST请求的两种格式
- shareSDK第三方分享完整版
- iOS 多线程总结
- Python开发入门详解
- linux学习笔记(一)—变量