佇列
佇列是只允許在一端進行插入操作,在另一端進行刪除操作的線性表。允許插入的一端稱為隊尾,允許刪除的一端稱為對頭 (先進先出的特性)
【1.順序儲存的佇列應該把佇列的所有元素都儲存在陣列的前n個單元,此時入隊的操作相當於追加,不需要移動元素;但是出隊操作的時間開銷為o(n)---------->2.放寬佇列的所有元素必須儲存在前n個單元這一條件,只要求儲存在陣列中的連續的位置,就可以得到一種更為有效的儲存方法,此時入隊和出隊的操作的時間開銷都是o(1),因此需要設定對頭、隊尾指標,並且約定:對頭指標front指向隊頭元素的前乙個位置,隊尾指標rear指向隊尾元素--------->3.由2的單移動性產生的假溢位,解決辦法:將儲存佇列的陣列看成是頭尾相接的迴圈結構,即允許佇列直接從陣列中下標最大的位置延續到下標最小的位置,佇列的這種頭尾相接的順序儲存結構稱為迴圈佇列】
迴圈佇列類:
package edu.tcu.soft;
public class cirqueue
//入隊操作
public void enqueue(e e) else
} //出對操作
@suppresswarnings("unchecked")
public e dequeue()else
return null;
} //獲取對頭的元素
@suppresswarnings("unchecked")
public e getqueuetop()else
return null;
}}
測試類:
package edu.tcu.soft;
public class test
}
Java 迴圈佇列的實現
出處 佇列 queue 是限定只能在一端插入 另一端刪除的線性表。允許刪除的一端叫做隊頭 front 允許插入的一端叫做隊尾 rear 沒有元素的佇列稱為 空佇列 佇列具有先進先出 fifo 的特性。在普通順序佇列中,入隊的操作就是先將尾指標rear右移乙個單位,然後將元素值賦值給rear單位。出隊...
Java實現迴圈佇列和鏈式佇列
佇列的定義 佇列是一種只允許一端進行插入操作,在另一端進行刪除操作的線性表。允許插入的一端稱為稱為隊尾,刪除的一段是隊頭。想象你去排隊購買車票時,排著乙個很長的隊,排在最前面的人買完票走了,這個操作就稱為出隊操作,而在佇列的後面又來乙個人排在後面,這個操作就稱為入隊操作。乙個普通的佇列 對於乙個普通...
java 利用陣列實現迴圈佇列
迴圈佇列可以有效的利用資源。如果使用普通陣列實現佇列時,如果不進行移動,隨著資料的不斷讀寫彈出插入,會出現假滿佇列的情況。例如不斷向佇列中新增元素,然後在彈出元素。這是彈出元素所空閒出來的空間並沒有得到重複利用,這是就會出現陣列尾部已經滿了,但是頭部還有空閒空間沒有得到利用。入隊時尾指標向前追趕頭指...