日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > (一)循環隊列

(一)循環隊列

來源:程序員人生   發布時間:2015-03-23 08:22:41 閱讀次數:3489次

隊列可使用數組或鏈表實現,這里介紹1種使用數組實現的循環隊列。

所謂循環隊列,是指當尾指針超過數組索引界限時,通過取余運算返回數組起始端,只要保證尾指針和頭指針不相遇,就能夠繼續存儲元素。

首先設定隊列的大小,并建立隊列結構體:

#define MAXSIZE 100001 typedef struct { int items[MAXSIZE]; int front; int rear; }Queue;

設頭指針和尾指針指向同1索引時隊列為空,起始時均在索引0處。

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

入隊操作是先檢查rear指針前進后是不是會和front指針相遇,如果會相遇則直接返回,并輸出毛?。宏犃幸褲M。

注意要對MAXSIZE取余,實現循環:

void AddQ(Queue *q, int item){ if ((q->rear + 1)%MAXSIZE == q->front) { // 為了辨別空隊列與滿隊列,必須保證rear和front不能再次碰面,因此要留出1個距離,提早判斷是不是添加后front=rear。 printf("隊列滿"); return; } q->rear = (q->rear + 1) % MAXSIZE; *(q->items + q->rear) = item; }

出隊操作是先檢查front和rear是不是相等,否則隊列為空,如果不空,則先將front后移,然后將front位置的元素返回:

int DeleteQ(Queue *q){ if (q->rear == q->front) { printf("隊列空"); return NULL; } q->front = (q->front + 1) % MAXSIZE; return *(q->items + q->front); }

注意入隊是先判斷后移是不是相遇來判斷是不是為滿再履行操作,操作方法為指針后移然后在指針處存入元素;出隊時是先判斷是不是相遇來判斷是不是為空,操作方法為指針后移然后在指針處存入元素。

在先移動指針再操作指針處元素、rear和front相等為空這兩個約定下,可以實現循環隊列。

完全代碼為:

#define MAXSIZE 100001 typedef struct { int items[MAXSIZE]; int front; int rear; }Queue; void initQueue(Queue *q){ q->front = q->rear = 0; } bool isEmpty(Queue *q){ return q->front == q->rear; } void AddQ(Queue *q, int item){ if ((q->rear + 1)%MAXSIZE == q->front) { // 為了辨別空隊列與滿隊列,必須保證rear和front不能再次碰面,因此要留出1個距離,提早判斷是不是添加后front=rear。 printf("隊列滿"); return; } q->rear = (q->rear + 1) % MAXSIZE; *(q->items + q->rear) = item; } int DeleteQ(Queue *q){ if (q->rear == q->front) { printf("隊列空"); return NULL; } q->front = (q->front + 1) % MAXSIZE; return *(q->items + q->front); }


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 久久久.com| 一区二区三区视频 | 国产综合精品一区二区三区 | 一本色道久久综合亚洲二区三区 | 国产激情在线观看 | 日韩一区二区av | 一区二区福利视频 | 99精品在线看| 最近中文字幕国语免费高清6 | 久久国产色 | 一级黄视频 | 在线观看中文字幕亚洲 | 欧美色欧美亚洲另类七区 | 国产精品video | 国产精品亚洲欧美 | 国产91精品久久久久久久网曝门 | 黄色精品一区 | 午夜视频在线观看网站 | 欧美精品一区二区三区四区五区 | 国产精品高清一区二区三区 | 一区二区免费视频 | 国产一区二区在线免费观看 | 国产美女一区二区三区 | 九九99久久| 亚洲2020天天堂在线观看 | 91国产视频在线观看 | 色姑娘粽合 | 成av在线 | 日韩在线视频一区二区三区 | 日本一区二区三区视频在线观看 | 国产精品成人一区二区三区夜夜夜 | 最新亚洲精品 | 一区二区三区高清在线观看 | 久久亚州 | 欧美亚洲日本国产 | 日本a视频 | 精品国产乱码久久久久久88av | 精品久久精品久久 | 久久久久久久久综合 | 久久九九九九 | 色婷婷综合久久久 |