91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

c語言基于數組怎么實現隊列

小億
98
2023-12-11 11:25:43
欄目: 編程語言

基于數組實現隊列可以使用兩個指針front和rear來分別指向隊列的頭部和尾部。以下是一種使用數組實現隊列的示例代碼:

#include <stdio.h>
#define MAX_SIZE 100

typedef struct {
    int data[MAX_SIZE];
    int front;
    int rear;
} Queue;

void initQueue(Queue *q) {
    q->front = -1;
    q->rear = -1;
}

int isEmpty(Queue *q) {
    return (q->front == -1 && q->rear == -1);
}

int isFull(Queue *q) {
    return (q->rear + 1) % MAX_SIZE == q->front;
}

void enqueue(Queue *q, int value) {
    if (isFull(q)) {
        printf("Queue is full\n");
        return;
    }
    if (isEmpty(q)) {
        q->front = 0;
        q->rear = 0;
    } else {
        q->rear = (q->rear + 1) % MAX_SIZE;
    }
    q->data[q->rear] = value;
}

void dequeue(Queue *q) {
    if (isEmpty(q)) {
        printf("Queue is empty\n");
        return;
    }
    if (q->front == q->rear) {
        q->front = -1;
        q->rear = -1;
    } else {
        q->front = (q->front + 1) % MAX_SIZE;
    }
}

int front(Queue *q) {
    if (isEmpty(q)) {
        printf("Queue is empty\n");
        return -1;
    }
    return q->data[q->front];
}

int main() {
    Queue q;
    initQueue(&q);

    enqueue(&q, 5);
    enqueue(&q, 10);
    enqueue(&q, 15);

    printf("Front element: %d\n", front(&q));
    dequeue(&q);
    printf("Front element: %d\n", front(&q));

    return 0;
}

在這個示例代碼中,我們定義了一個Queue結構體來保存隊列的數據和兩個指針。initQueue函數用于初始化隊列,isEmpty和isFull函數分別用于判斷隊列是否為空和是否已滿。enqueue函數用于將元素入隊,dequeue函數用于將隊頭元素出隊,front函數用于獲取隊頭元素的值。

在main函數中,我們首先初始化了隊列,然后通過enqueue函數將3個元素入隊。接著使用front函數獲取隊頭元素的值,并通過dequeue函數將隊頭元素出隊。最后再次使用front函數獲取隊頭元素的值。

0
新昌县| 黄冈市| 寻甸| 黔南| 洛隆县| 万源市| 东乌珠穆沁旗| 乌拉特后旗| 太谷县| 安塞县| 达孜县| 封丘县| 汤原县| 隆尧县| 青冈县| 乐平市| 丹棱县| 敦煌市| 南涧| 临汾市| 安化县| 新源县| 望城县| 游戏| 铅山县| 武定县| 绍兴市| 郎溪县| 阳江市| 阜阳市| 横峰县| 崇明县| 兴城市| 沛县| 高台县| 莎车县| 叙永县| 永兴县| 建湖县| 蒲城县| 安化县|