7-1 队列的实现及基本操作C语言入队和出队
时间: 2023-05-23 15:02:50 浏览: 328
c语言实现队列的建立,入队,出队
5星 · 资源好评率100%
可以使用数组或链表实现队列。使用数组实现队列时,需要用一个指针记录队头和队尾的位置,可以使用循环数组来实现。使用链表实现队列时,可以使用头指针和尾指针来记录队头和队尾的位置。
以下是 C 语言实现队列的代码:
```c
// 定义队列结构体
typedef struct {
int* arr; // 存储数据的数组
int head; // 队头位置
int tail; // 队尾位置
int size; // 队列容量
} Queue;
// 初始化队列
Queue* initQueue(int size) {
Queue* q = (Queue*)malloc(sizeof(Queue));
q->arr = (int*)malloc(sizeof(int) * size);
q->head = q->tail = 0;
q->size = size;
return q;
}
// 入队
void push(Queue* q, int x) {
if (q->tail == q->size) {
printf("队列已满\n");
return;
}
q->arr[q->tail++] = x;
}
// 出队
int pop(Queue* q) {
if (q->head == q->tail) {
printf("队列为空\n");
return -1;
}
return q->arr[q->head++];
}
```
以上代码中,当队列已满时,无法进行入队操作,当队列为空时,无法进行出队操作,这两种情况可以根据实际需求进行修改。
另外还有一些其他的基本操作,如获取队列长度、获取队头元素等,可以根据实际需求进行扩展。
阅读全文