1、為空條件單鍊表:頭結點指針域next==null靜態鍊表:數組最後一個元素值為0循環鍊表:頭結點的指針域指向它本身(循環查找時以p->next!=頭結點作為遍歷結。
- 文化問答
- 答案列表
判斷隊列滿的條件:判斷循環隊列滿的條件[朗讀]
(rear+1)%max==front分析:循環隊列其實就是,每次你做front或者rear+1的操作,都要給它取個模.進隊列rear+1,變成rear+1取模;出隊列front+1,變成front+1取模.而front一般來說是指向隊列里第一個元素的.如果往隊尾再放一個元素,就要做rear+1取模,這時候rear跟front重疊了,說明隊列滿了,不能再放了。
因為是循環隊列,循環隊列的思想是如果隊頭有空餘的位置,則可以把數據插入到隊頭,從而是一個圈q->front==q->rear+1明顯是一個判定條件,判定當前隊列是否已滿,噹噹前隊列q->front正好為0,q->rear為(maxsize-1,即整個隊列的最後一個),q->rear+1就溢出了,(q->rear+1)%maxsize正好就是0,從而可以判斷front和rear+1是不是同一個位置。
另設長度計數器是一種方法另設標誌位來判斷也是一種不過估計你問的是這種,對空:q.front=q.rear隊滿:(q.rear+1)%maxqsize=q.front因為不管隊滿還是對空,就實際而言都是q.front=q.rear所以隊滿判斷就需要求余判斷。
queue::queue()//buildanemptyqueue{front=0;rear=0;}boolqueue::empty()const{returnrear==front;}(rear+1)%maxqueue==front;為判別隊列滿的條件即答案選擇a。