wxDevc++ 7.3.1.3 使用c的数据结构,表示一个循环队列
#include <cstdlib>
#include <iostream>
using namespace std;
const int size=10;
struct Queue
{
int a[size];
int front;
int rear;
};
int inQueue(Queue *q,int data)
{
if((q->front+1)%size==q->rear)
{
return -1;
}
q->a[q->front]=data;
q->front++;
return 0;
};
void outputQueue(Queue *q)
{
if(q->front>=q->rear)
{
if(q->front!=q->rear)
{
for(int i=q->front-1;i>=q->rear;i--)
cout<<q->a[i]<<endl;
}
}
else
{
if(q->front>0)
{
for(int i=q->front-1;i>=0;i--)
cout<<q->a[i]<<endl;
}
for(int j=size-1;j>=q->rear;j--)
cout<<q->a[j]<<endl;
}
};
int outQueue(Queue *q)
{
if(q->rear!=q->front)
{
return(q->a[q->rear++]);
}
else
{
return -1;
}
};
int main(int argc, char *argv[])
{
Queue q;
q.front=0;
q.rear=0;
int outq,inq;
inq=inQueue(&q,10);
outputQueue(&q);
//if(inq!=-1)
//outq=outQueue(&q);
system("PAUSE");
return EXIT_SUCCESS;
}