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

溫馨提示×

c語言隊列實現代碼怎么寫

小億
80
2023-11-04 11:32:38
欄目: 編程語言

要在 C 語言中實現一個隊列,可以使用數組或鏈表來存儲元素,并使用相應的操作來實現隊列的基本功能。下面是一個使用數組實現隊列的示例代碼:

#include 
#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 == MAX_SIZE - 1);
}
void enqueue(Queue* q, int value) {
    if (isFull(q)) {
        printf("Error: Queue is full\n");
        return;
    }
    if (isEmpty(q)) {
        q->front = 0;
    }
    q->rear++;
    q->data[q->rear] = value;
}
int dequeue(Queue* q) {
    if (isEmpty(q)) {
        printf("Error: Queue is empty\n");
        return -1;
    }
    int value = q->data[q->front];
    if (q->front == q->rear) {
        // If there is only one element in the queue
        q->front = -1;
        q->rear = -1;
    } else {
        q->front++;
    }
    return value;
}
int main() {
    Queue q;
    initQueue(&q);
    enqueue(&q, 10);
    enqueue(&q, 20);
    enqueue(&q, 30);
    printf("Dequeued: %d\n", dequeue(&q));
    printf("Dequeued: %d\n", dequeue(&q));
    printf("Dequeued: %d\n", dequeue(&q));
    return 0;
}

在上述代碼中,我們定義了一個 `Queue` 結構體來表示隊列,其中包含一個大小為 `MAX_SIZE` 的整型數組用于存儲元素,以及 `front` 和 `rear` 兩個指針分別指向隊列的頭和尾。

`initQueue()` 函數用于初始化隊列,將 `front` 和 `rear` 置為 -1 表示隊列為空。

`isEmpty()` 函數檢查隊列是否為空,如果 `front` 和 `rear` 都是 -1,則表明隊列為空。

`isFull()` 函數檢查隊列是否已滿,如果 `rear` 等于 `MAX_SIZE - 1`,則表示隊列已滿。

`enqueue()` 函數用于入隊操作,向隊列尾部添加元素。首先檢查隊列是否已滿,如果已滿則輸出錯誤信息。如果隊列為空,將 `front` 設置為 0。然后將 `rear` 增加 1,并將新的元素存儲在隊列的尾部。

`dequeue()` 函數用于出隊操作,從隊列頭部取出元素并返回。首先檢查隊列是否為空,如果為空則輸出錯誤信息。如果隊列只有一個元素,將 `front` 和 `rear` 都設置為 -1。否則,將 `front` 增加 1,并返回隊列頭部的元素。

以上代碼輸出結果為:

Dequeued: 10
Dequeued: 20
Dequeued: 30

這樣就完成了使用數組實現的隊列操作。如果想要使用鏈表實現隊列,可以使用類似的思路,只是節點的定義和操作會有所不同。

0
淮南市| 塔河县| 河曲县| 红河县| 武义县| 仁寿县| 高州市| 凌海市| 集贤县| 沙坪坝区| 东安县| 南京市| 瓦房店市| 镇坪县| 会理县| 湖州市| 开阳县| 临潭县| 金华市| 鄱阳县| 东莞市| 陕西省| 玉田县| 宁安市| 克山县| 闽侯县| 青浦区| 依兰县| 保德县| 太原市| 民勤县| 万州区| 鄂州市| 鄄城县| 丰镇市| 年辖:市辖区| 益阳市| 池州市| 汉阴县| 永修县| 若羌县|