复习引言
– 我记得我第一次在生产中接触队列是在百度UDC,那时候接触不是赤裸的结构体,是所谓的消息中间件,rabbitMQ 还有 laravel 中的轻量级队列,还有用来导入数据的 kafka 的 broker 等等那些我暂时没有深入研究过的队列,现在要复习的不是那些中间件,而是我上学时候应该学好的数据结构。目前做太久业务逻辑,很久没有用到了,该做一次复习了。
实现
#include <stdio.h>
#include <string.h>
struct queue
{
char a[100]; // 只定义,未初始化
int head;
int tail;
}
int main()
{
struct queue q;
int i;
// 队列初始化
q.head = 1;
q.tail = 1;
for (i=1; i<=9; i++)
{
scanf("%c", &q.data[q.tail]);
q.tail++;
}
// 队列中有数时执行循环
while (q.head < q.tail)
{
// 打印head并出队
printf("%d", q.data[q.head]);
q.head++;
// 将新的head添加到队尾
q.data[q.tail] = q.data[q.head];
q.tail++;
// 将head 出队
q.head++;
}
return 0;
}