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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

顺序循环队列队满队空的两种判别方式

發(fā)布時(shí)間:2024/10/14 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 顺序循环队列队满队空的两种判别方式 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

寫在前面:博主是一位普普通通的19屆雙非軟工在讀生,平時(shí)最大的愛好就是聽聽歌,逛逛B站。博主很喜歡的一句話花開堪折直須折,莫待無花空折枝:博主的理解是頭一次為人,就應(yīng)該做自己想做的事,做自己不后悔的事,做自己以后不會(huì)留有遺憾的事,做自己覺得有意義的事,不浪費(fèi)這大好的青春年華。博主寫博客目的是記錄所學(xué)到的知識并方便自己復(fù)習(xí),在記錄知識的同時(shí)獲得部分瀏覽量,得到更多人的認(rèn)可,滿足小小的成就感,同時(shí)在寫博客的途中結(jié)交更多志同道合的朋友,讓自己在技術(shù)的路上并不孤單。

目錄:
1.方法一:少用一個(gè)元素空間
2.方法二:設(shè)置標(biāo)志位區(qū)分隊(duì)列的空和滿

1.方法一:少用一個(gè)元素空間

我們嚴(yán)蔚敏奶奶的書是使用的這種方法

當(dāng)我們的順序循環(huán)隊(duì)列空間大小是m那么有m-1個(gè)元素就可以認(rèn)為是隊(duì)滿,也就是:
(Q.rear+1)%MAXQSIZE==Q.front
那么隊(duì)空就是首尾指針相等,即:
Q.front==Q.rear

2.方法二:設(shè)置標(biāo)志位區(qū)分隊(duì)列的空和滿

我們看一道程序設(shè)計(jì)題:

假設(shè)以數(shù)組Q[m]存放循環(huán)隊(duì)列元素,同時(shí)設(shè)置一個(gè)標(biāo)志tag以tag== 0和tag==1來區(qū)別在隊(duì)頭指針(Q.front)和隊(duì)尾指針(Q.rear)相等時(shí),隊(duì)列狀態(tài)為空,還是滿,并試著寫出相應(yīng)插入刪除的算法

直接看代碼:

typedef struct{ElemType *base;int front;int rear;int tag; }SqQueue; Status InitQueue(SqQueue &Q) {Q.base=new ElemType[MAXSIZE];if(!Q.base)exit(1);Q.front=Q.rear=0;Q.tag=0;return OK; } Status EnQueue(SqQueue &Q,ElemType e) {if((Q.tag==1)&&(Q.rear==Q.front))//隊(duì)滿return ERROR;elseQ.base[Q.rear]=e;Q.rear=(Q.rear+1)%MAXSIZE;if(Q.tag==1)Q.tag=1;return OK; } Status DeQueue(SqQueue &Q,ElemType e) {if((Q.tag==0)&&(Q.rear==Q.front))//隊(duì)空return ERROR;e=Q.base[Q.front];Q.front=(Q.front+1)%MAXSIZE;if(Q.tag==1)Q.tag=0; return OK; }

我們可以看到隊(duì)滿和空都需要具備兩個(gè)條件

隊(duì)滿:(Q.tag==1)&&(Q.rear==Q.front)
隊(duì)空:(Q.tag==0)&&(Q.rear==Q.front)

總結(jié)

以上是生活随笔為你收集整理的顺序循环队列队满队空的两种判别方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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