c语言队列的基本操作

在C语言中,队列是一种常见的数据结构,用于存储一系列数据,遵循先进先出(FIFO)的原则。队列的基本操作包括:

  1. 初始化队列,在使用队列之前,需要先初始化队列。可以使用malloc函数动态分配队列所需的内存空间,然后将队列头和队列尾指针都初始化为0,表示队列为空。
#define MAXSIZE 10
typedef struct {
    int data[MAXSIZE];
    int front; // 队列头指针
    int rear; // 队列尾指针
} Queue;
void initQueue(Queue *q) {
    q->front = q->rear = 0;
}
  1. 判断队列是否为空, 当队列头指针等于队列尾指针时,说明队列为空。
int isEmpty(Queue *q) {
    return q->front == q->rear;
}
  1. 判断队列是否已满,当队列尾指针加1等于队列头指针时,说明队列已满。
int isFull(Queue *q) {
    return (q->rear + 1) % MAXSIZE == q->front;
}
  1. 入队,将元素插入队列尾部,并将队列尾指针加1。
int enQueue(Queue *q, int value) {
    if (isFull(q)) {
        printf("队列已满,入队失败\n");
        return 0;
    }
    q->data[q->rear] = value;
    q->rear = (q->rear + 1) % MAXSIZE;
    return 1;
}
  1. 出队,从队列头部取出元素,并将队列头指针加1。
int deQueue(Queue *q, int *value) {
    if (isEmpty(q)) {
        printf("队列为空,出队失败\n");
        return 0;
    }
    *value = q->data[q->front];
    q->front = (q->front + 1) % MAXSIZE;
    return 1;
}
  1. 获取队列长度,队列长度等于队列尾指针减去队列头指针。
int getLength(Queue *q) {
    return (q->rear - q->front + MAXSIZE) % MAXSIZE;
}

以上就是C语言队列的基本操作,可以通过这些操作实现队列的基本功能。

一个实例告诉你c语言中自减运算符是什么

C语言中用图形库来实现绘制图形