双端队列
2015-07-23 16:43
246 查看
#include <iostream> #include <cstring> using namespace std; #define size 10 struct squeue { int queue[size]; int front,rear; }; void initqueue(squeue *sq) { sq->front=sq->rear=0; } int isempty(squeue *sq) { if(sq->front==sq->rear) return 1; return 0; } int enqueue(squeue *sq,int e,int de) { if(de==0) { if(sq->front==0) { return 0; } else { sq->front--; sq->queue[sq->front]=e; } } else { if(sq->rear==size) { return 0; } else { sq->queue[sq->rear]=e; sq->rear++; } } } int ouqueue(squeue *sq,int &e,int de) { if(isempty(sq)) return 0; if(de==0) { e=sq->queue[sq->front]; sq->front++; } else { e=sq->queue[sq->rear-1]; sq->rear--; } } int main(int argc, char const *argv[]) { squeue s; initqueue(&s); int i,e; for(i=0;i<5;i++) enqueue(&s,i,1); for(i=0;i<5;i++) { ouqueue(&s,e,0); cout<<e<<' '; } cout<<endl; for(i=10;i>=6;i--) { enqueue(&s,i,0); } for(i=0;i<5;i++) { ouqueue(&s,e,1); cout<<e<<' '; } return 0; }
相关文章推荐
- Storm Capacity Metric
- JFinal的架构介绍,JFinal实现极速开发的原理是什么?又是如何实现的?
- Java中的Hashtable实现方法
- Android4.4 WifiP2pSettings 中调用流程
- OC笔记-学习self时候2个target然后修改名字出现linker command failed with exit code 1 (use -v to see invocation)
- TRACE()的用法总结
- 删除功能在哪里
- POJ 1008 Maya Calendar(模拟)
- [转] Spring Security(01)——初体验
- 本内容中发现无效字符。处理资源 'file:///C:/Users/XDJ/Desktop/1111/press.xml' 时出错。第 5 行,位置: 11 <author>ƽ
- 手机安全卫士------主页面(HomeActivity)
- iOS for循环创建button,button的宽度根据上面的文字来自适应.
- Online Judge System For SzNOI 题库 语法百题 C++ d011
- Visual Studio 2015速递(1)——C#6.0新特性怎么用
- PO CREATE
- jquery日期格式化
- 生产环境之CentOS-6.5下KVM利用kickstart批量安装操作系统
- 在64位ubuntu15.04中安装android studio 开发环境
- leetcode 048 —— Anagrams
- Mysql字符串截取函数SUBSTRING的用法说明