c++queue使用方法
时间: 2024-01-12 17:04:36 浏览: 86
c++stack_和_queue用法
4星 · 用户满意度95%
C 语言中可以使用数组或链表实现队列,以下是使用数组实现队列的例子:
1. 定义队列结构体和队列大小
```
#define MAX_SIZE 100
typedef struct {
int data[MAX_SIZE];
int front;
int rear;
} Queue;
```
2. 初始化队列
```
void initQueue(Queue *queue) {
queue->front = -1;
queue->rear = -1;
}
```
3. 判断队列是否为空
```
int isEmpty(Queue *queue) {
return queue->front == -1;
}
```
4. 判断队列是否已满
```
int isFull(Queue *queue) {
return queue->rear == MAX_SIZE - 1;
}
```
5. 入队
```
void enqueue(Queue *queue, int value) {
if (isFull(queue)) {
printf("Queue is full!\n");
return;
}
if (isEmpty(queue)) {
queue->front = 0;
}
queue->rear++;
queue->data[queue->rear] = value;
}
```
6. 出队
```
int dequeue(Queue *queue) {
if (isEmpty(queue)) {
printf("Queue is empty!\n");
return -1;
}
int value = queue->data[queue->front];
if (queue->front == queue->rear) {
queue->front = -1;
queue->rear = -1;
} else {
queue->front++;
}
return value;
}
```
使用时,可以先初始化队列:
```
Queue queue;
initQueue(&queue);
```
然后通过入队和出队操作来实现队列的功能:
```
enqueue(&queue, 1);
enqueue(&queue, 2);
enqueue(&queue, 3);
printf("%d\n", dequeue(&queue)); // 1
printf("%d\n", dequeue(&queue)); // 2
printf("%d\n", dequeue(&queue)); // 3
```
阅读全文