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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

(5)队列

發(fā)布時(shí)間:2023/12/10 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (5)队列 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

隊(duì)列知識(shí)點(diǎn):

循環(huán)隊(duì)列:

隊(duì)列的操作:

創(chuàng)建隊(duì)列:

判斷隊(duì)列是否已滿:

入隊(duì):

遍歷隊(duì)列:

判斷隊(duì)列是否為空:

出隊(duì):



這篇筆記是根據(jù)郝斌老師的上課講義整理而得:

隊(duì)列知識(shí)點(diǎn):

定義:一種可以實(shí)現(xiàn)先進(jìn)先出的存儲(chǔ)結(jié)構(gòu),分為鏈?zhǔn)疥?duì)列(鏈表實(shí)現(xiàn))和靜態(tài)隊(duì)列(數(shù)組實(shí)現(xiàn))。

循環(huán)隊(duì)列:


?? ??? ??? ?1. 靜態(tài)隊(duì)列為什么必須是循環(huán)隊(duì)列
?? ??? ??? ??? ??? ?front指向隊(duì)列第一個(gè)元素
?? ??? ??? ??? ??? ?rear指向隊(duì)列最后一個(gè)元素的下一個(gè)元素
?? ??? ??? ?2. 循環(huán)隊(duì)列需要幾個(gè)參數(shù)確定
?? ??? ??? ??? ??? ?兩個(gè)參數(shù);不同場(chǎng)合有不同的含義?? ?
?? ??? ??? ?3. 循環(huán)隊(duì)列各個(gè)參數(shù)的含義
?? ??? ??? ??? ??? ?1) 隊(duì)列初始化
?? ??? ??? ??? ??? ??? ??? ?front 和rear 值為零
?? ??? ??? ??? ??? ?2) 隊(duì)列非空
?? ??? ??? ??? ??? ??? ??? ?front代表的是隊(duì)列的第一個(gè)元素
?? ??? ??? ??? ??? ??? ??? ?rear代表隊(duì)列最后一個(gè)有效元素的下一個(gè)元素
?? ??? ??? ??? ??? ?3) 隊(duì)列空
?? ??? ??? ??? ??? ??? ??? ?front = rear 但不一定為零
?? ??? ??? ??? ??? ??? ??? ?
?? ??? ??? ?4. 循環(huán)隊(duì)列入隊(duì)偽算法講解
?? ??? ??? ??? ??? ?1. 將要存放的值放入r所在的位置
?? ??? ??? ??? ??? ?2. r = (r+1)%數(shù)組的長(zhǎng)度
?? ??? ??? ?5. 循環(huán)隊(duì)列出隊(duì)偽算法講解
?? ??? ??? ??? ??? ? ? f = (f+1)%數(shù)組的長(zhǎng)度
?? ??? ??? ??? ??? ? ??
?? ??? ??? ?6. 如何判斷循環(huán)隊(duì)列是否為空
?? ??? ??? ??? ??? ?如果front與rear的值相等,則該隊(duì)列就一定為空
?? ??? ??? ?7. 如何判斷循環(huán)隊(duì)列是否已滿
?? ??? ??? ??? ??? ?兩種方式:1.多增加一個(gè)標(biāo)識(shí)符參數(shù)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2. if((r+1)%數(shù)組長(zhǎng)度==f)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?已滿
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?else
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?未滿

隊(duì)列的操作:

#include <stdio.h> #include <stdlib.h> #include <malloc.h>typedef struct queue {int * pBase;int front;int rear; }QUEUE;void init(QUEUE *); bool en_queue(QUEUE*, int val); void traverse_queue(QUEUE*); bool full_queue(QUEUE*); bool out_queue(QUEUE*,int*); bool empty_queue(QUEUE *);

創(chuàng)建隊(duì)列:

void init(QUEUE *pQ) {pQ->pBase = (int *)malloc(sizeof(int) * 6);//隊(duì)列空間大小為6個(gè)int元素pQ->front = 0;pQ->rear = 0; }

判斷隊(duì)列是否已滿:

bool full_queue(QUEUE * pQ) {if ( (pQ->rear + 1) % 6 == pQ->front )return true;elsereturn false; }

入隊(duì):

bool en_queue(QUEUE * pQ, int val) {if ( full_queue(pQ) ){return false;}else{pQ->pBase[pQ->rear] = val;pQ->rear = (pQ->rear+1) % 6;return true;} }

遍歷隊(duì)列:

void traverse_queue(QUEUE * pQ) {int i = pQ->front;while (i != pQ->rear){printf("%d ", pQ->pBase[i]);i = (i+1) % 6;}printf("\n");return; }

判斷隊(duì)列是否為空:

bool emput_queue(QUEUE * pQ) {if ( pQ->front == pQ->rear )return true;elsereturn false; }

出隊(duì):

bool out_queue(QUEUE * pQ, int * pVal) {if ( emput_queue(pQ) ){return false;}else{*pVal = pQ->pBase[pQ->front];pQ->front = (pQ->front+1) % 6;return true;} }

?

總結(jié)

以上是生活随笔為你收集整理的(5)队列的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。