今日学习了队列的相关操作:
定义:
define MAX_SIZE 100 // 假设队列最大容量为 100
typedef struct Queue {
int data[MAX_SIZE];
int front;
int rear;
} Queue;
初始化:
void initQueue(Queue *q) {
q->front = 0;
q->rear = 0;
}
入队操作:
void enqueue(Queue *q, int value) {
if (q->rear == MAX_SIZE - 1) {
printf("Queue Overflow\n");
return;
}
q->data[q->rear] = value;
q->rear++;
}
出队操作:
int dequeue(Queue *q) {
if (q->front == q->rear) {
printf("Queue Underflow\n");
return -1;
}
int value = q->data[q->front];
q->front++;
return value;
}
队列修改操作:
void modifyFront(Queue *q, int newValue) {
if (q->front == q->rear) {
printf("Queue is empty, cannot modify.\n");
return;
}
q->data[q->front] = newValue;
}
查找操作:
int peekFront(Queue *q) {
if (q->front == q->rear) {
return -1; // 也可根据实际需求返回其他标识值表示队列空
}
return q->data[q->front];
}