用C语言实现队列的代码
时间: 2023-02-16 12:42:49 浏览: 67
下面是用 C 语言实现队列的代码:
```
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
/*定义队列的结构体*/
typedef struct Queue
{
int data[MAX_SIZE];
int head;
int tail;
}Queue;
/*初始化队列*/
void init_queue(Queue *q)
{
q->head = 0;
q->tail = 0;
}
/*入队操作*/
void enqueue(Queue *q, int value)
{
/*如果队列满了,就不能再插入元素*/
if((q->tail+1)%MAX_SIZE == q->head)
{
printf("Queue is full!\n");
return;
}
q->data[q->tail] = value;
q->tail = (q->tail+1)%MAX_SIZE;
}
/*出队操作*/
int dequeue(Queue *q)
{
/*如果队列为空,就不能再弹出元素*/
if(q->tail == q->head)
{
printf("Queue is empty!\n");
return -1;
}
int value = q->data[q->head];
q->head = (q->head+1)%MAX_SIZE;
return value;
}
int main()
{
Queue q;
init_queue(&q);
enqueue(&q, 1);
enqueue(&q, 2);
enqueue(&q, 3);
printf("%d\n", dequeue(&q));
printf("%d\n", dequeue(&q));
printf("%d\n", dequeue(&q));
return 0;
}
```
该代码使用了一个循环数组来实现队列,包含了初始化队列、入队、出队三个操作。