日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

            歡迎訪問 生活随笔!

            生活随笔

            當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

            编程问答

            c语言队列的作用,C语言队列

            發布時間:2023/12/31 编程问答 23 豆豆
            生活随笔 收集整理的這篇文章主要介紹了 c语言队列的作用,C语言队列 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

            C語言的隊列(queue),是指先進先出(FIFO, First-In-First-Out)的線性表。在具體應用中通常用鏈表或者數組來實現。隊列只允許在后端(稱為rear)進行插入操作,在前端(稱為front)進行刪除操作

            單鏈表形式(單鏈隊列使用鏈表作為基本數據結果,因此不存在偽溢出的問題,隊列長度也沒有限制。但插入和讀取的時間代價會比較高)

            #include

            #include

            #include

            #include

            #include

            #define Queue_TYPE int

            typedef struct queue_node

            {

            Queue_TYPE value;

            struct queue_node *next;

            }QUEUE_NODE;

            typedef struct queue

            {

            QUEUE_NODE *font;

            QUEUE_NODE *rear;

            }QUEUE;

            int is_full(QUEUE *q);

            int is_empty(QUEUE *q);

            void enqueue(QUEUE *q,Queue_TYPE value);

            void dequeue(QUEUE *q);

            QUEUE * creat_queue();

            void print(QUEUE *q);

            void destroy_queue(QUEUE *q);

            int main(int argc, const char * argv[]) {

            QUEUE *q = creat_queue();

            if (q==NULL) {

            printf("malloc failed");

            }

            // creat_queue(q);

            enqueue(q,10); enqueue(q,9); enqueue(q,8); enqueue(q,7); enqueue(q,6); enqueue(q,5);

            enqueue(q,4); enqueue(q,3); enqueue(q,2); enqueue(q,1); enqueue(q,0);

            printf("enqueue壓入數值后:\n");

            print(q);

            destroy_queue(q);

            return 0;

            }

            QUEUE * creat_queue()

            {

            QUEUE *q = (QUEUE *)malloc(sizeof(QUEUE));

            if (q==NULL) {

            printf("malloc failed");

            }

            q->font = (QUEUE_NODE *)malloc(sizeof(QUEUE_NODE));

            if (q->font == NULL) {

            printf("malloc failed");

            }

            q->rear = q->font;

            return q;

            }

            void enqueue(QUEUE *q,Queue_TYPE value)

            {

            QUEUE_NODE *newNode = (QUEUE_NODE *)malloc(sizeof(QUEUE_NODE));

            if (newNode == NULL) {

            printf("malloc failed");

            }

            newNode->next = NULL;

            newNode->value = value;

            q->rear->next = newNode;

            q->rear = newNode;

            }

            int is_empty(QUEUE *q)

            {

            return q->rear == q->font;

            }

            void print(QUEUE *q)

            {

            if (is_empty(q)) {

            printf("empty");

            }

            QUEUE_NODE *node = q->font->next;

            while (node != NULL) {

            printf("%d",node->value);

            node = node->next;

            }

            printf("\n");

            }

            void dequeue(QUEUE *q)

            {

            if (is_empty(q)) {

            printf("empty");

            }

            QUEUE_NODE *font = q->font;

            q->font = q->font->next;

            free(font);

            }

            void destroy_queue(QUEUE *q)

            {

            while (!is_empty(q)) {

            dequeue(q);

            }

            }

            總結

            以上是生活随笔為你收集整理的c语言队列的作用,C语言队列的全部內容,希望文章能夠幫你解決所遇到的問題。

            如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。