[問題] 資料結構新手問題
非常低階的問題@@
可是我還是想不透...
--
資料結構中的環狀柱列的
加入元素到佇列
void addq(element item)
{
rear=(rear+1)% MAX_QUEUE_SIZE;
if(front==rear)
queueFull();
queue[rear]=item;
}
如果照這樣寫的話
當rear=(rear+1)% MAX_QUEUE_SIZE;被執行之後
如果if內的條件成立
那rear不就被多加一了嗎?
為什麼不再queueFull();後面加一句rear--;呢?
每個教科書都沒有寫要加一句rear--;
那豈不是之後rear所在的位置都沒有值了?
(可能是問題太過低階了 所以版上和網路上都搜尋不到...)
感謝大大的解惑...
------
補上LPH大大要求附上的dequeue
element deleteq()
{
element item;
if(front==rear)
return queueEmpty();
front = (front+1) % MAX_QUEUE_SIZE;
return queue[front];
}
教科書上有說是要分出全空和全滿的佇列
但是這麼一來rear的位置不就跑掉了@@?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.205.243
推
01/10 01:31, , 1F
01/10 01:31, 1F
→
01/10 01:32, , 2F
01/10 01:32, 2F
→
01/10 01:34, , 3F
01/10 01:34, 3F
※ 編輯: joejoejoe 來自: 140.115.205.243 (01/10 01:39)
※ 編輯: joejoejoe 來自: 140.115.205.243 (01/10 01:42)
→
01/10 01:59, , 4F
01/10 01:59, 4F
→
01/10 02:25, , 5F
01/10 02:25, 5F
→
01/10 03:16, , 6F
01/10 03:16, 6F
→
01/10 10:39, , 7F
01/10 10:39, 7F