您的位置:首页 > 其它

队列( FIFO ) 循环队列

2015-08-02 13:11 274 查看
队列( FIFO )



数组实现

#include <stdio.h>
#define N 64
int main()
{
int i, n, front, rear, q[2*N];
scanf("%d", &n);
for(i = 0; i < n; i++)
q[i] = i + 1;
front = 0;
rear = n;
while(rear – front > 0)
{
printf("%d ", q[front]);
front++;
q[rear++] = q[front++];
}
return 0;
}


循环队列



数组实现

#include <stdio.h>
#define N 64
int main()
{
int i, n, front, rear, q
;
scanf("%d", &n);
for(i = 0; i < n; i++)
q[i] = i + 1;
front = 0;   rear = n;
while((rear - front + N) % N > 0)
{
printf("%d ", q[front]);
front = (front + 1) % N;
q[rear] = q[front];
rear = (rear + 1) % N;
front = (front + 1) % N;
}
return 0;
}


STL实现

#include <cstdio>
#include <queue>
using namespace std;
int main()
{
queue<int> q;
int i, n;
scanf("%d", &n);
for(i = 0; i < n; i++)
q.push(i + 1);
while(!q.empty())
{
printf("%d ", q.front());
q.pop();
q.push(q.front());
q.pop();
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: