设计队列初始化、入队、出队的算法代码
时间: 2023-09-26 16:05:53 浏览: 89
好的,这是一个关于数据结构的问题,我可以为您提供相关的算法代码。以下是队列的初始化、入队和出队操作的示例代码:
```
// 队列结构体定义
typedef struct {
int front; // 队首指针
int rear; // 队尾指针
int size; // 队列大小
int* data; // 存储数据的数组
} Queue;
// 初始化队列
void initQueue(Queue* queue, int size) {
queue->front = 0;
queue->rear = -1;
queue->size = size;
queue->data = (int*)malloc(sizeof(int) * size);
}
// 判断队列是否已满
int isFull(Queue* queue) {
return queue->rear == queue->size - 1;
}
// 判断队列是否为空
int isEmpty(Queue* queue) {
return queue->rear < queue->front;
}
// 入队操作
void enqueue(Queue* queue, int value) {
if (isFull(queue)) {
printf("The queue is full!\n");
return;
}
queue->data[++queue->rear] = value;
}
// 出队操作
int dequeue(Queue* queue) {
if (isEmpty(queue)) {
printf("The queue is empty!\n");
return -1;
}
return queue->data[queue->front++];
}
```
希望以上代码对您有所帮助,如有不明白之处,请随时提问。
阅读全文