您的位置:首页 > 其它

双端队列

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: