迴圈佇列可以有效的利用資源。如果使用普通陣列實現佇列時,如果不進行移動,隨著資料的不斷讀寫彈出插入,會出現假滿佇列的情況。例如不斷向佇列中新增元素,然後在彈出元素。這是彈出元素所空閒出來的空間並沒有得到重複利用,這是就會出現陣列尾部已經滿了,但是頭部還有空閒空間沒有得到利用。
入隊時尾指標向前追趕頭指標,出隊時頭指標向前追趕尾指標
/**
* created by jkerving on 2016/4/20.
* use an array to implement a circle queue
*/public
class
circlequeue
//insert into circle queue
private
intinsert(int x)else
}//pop from circle queue
private
intpop()else
}//get head for circle queue
private
inthead()
//get tail for circle queue
private
inttail()
//check isfull
private
boolean
isfull()else
}//check is null
private
boolean
isnull()else
}}
java佇列的迴圈陣列實現
package com.yy.queue 迴圈陣列佇列 author public class queue public queue 獲取當前佇列長度 public int getqueuesize else return currentsize 入隊操作 public void enqueue o...
java實現迴圈佇列
佇列 佇列是只允許在一端進行插入操作,在另一端進行刪除操作的線性表。允許插入的一端稱為隊尾,允許刪除的一端稱為對頭 先進先出的特性 1.順序儲存的佇列應該把佇列的所有元素都儲存在陣列的前n個單元,此時入隊的操作相當於追加,不需要移動元素 但是出隊操作的時間開銷為o n 2.放寬佇列的所有元素必須儲存...
佇列 陣列實現 迴圈佇列
1 陣列佇列.cpp 定義控制台應用程式的入口點。2 3 include4 include5 include abs 6 include7 include8 using namespace std 9 10 定義乙個佇列的結構體11 struct myqueue12 17 18 規則說明 19 nh...