在現實中,我們去銀行辦理業務的時候就需要排隊。你來的早,排在前面,就會越早的離開。而在你排的隊就是乙個佇列。根據佇列的先進先出的原則,我們就可以用**來實現乙個佇列。佇列是個有序列表,它遵循先進先出的原則。
首先在乙個arrayqueue類中建立乙個陣列來代表乙個佇列
private
int[
] arrayqueue;
// 建立乙個陣列
private
int maxsize;
// 佇列的最大長度
private
int front;
// 隊頭
private
int rear;
// 隊尾
然後我們要將這些資訊進行初始化
public
arrayqueue
(int max)
然後是對佇列的一些操作
// 判斷佇列是否已滿
// 當隊尾到達最大值時,佇列已滿( 陣列能儲存的最大下標為 n - 1 )
public
boolean
isfull()
// 判斷佇列是否為空
// 當隊頭和隊尾在同一位置時,則說明佇列中間沒有內容,即為空。
public
boolean
isempty()
// 新增資料
// 新增資料時要先判斷佇列是否已滿
public
void
addqueue
(int n)
rear ++
; arrayqueue[rear]
= n;
}// 從佇列中拿出資料
// 同理要先判斷佇列裡是否有資料
// 根據先進先出原則來取資料
public
intgetqueue()
front ++
;return arrayqueue[front];}
// 遍歷佇列
// 當隊列為空時,直接顯示隊列為空佇列
public
void
showqueue()
for(
int i =
0; i < arrayqueue.length; i++
) system.out.
print
(arrayqueue[i]
+" ");
system.out.
println()
;}
在這個佇列中存在乙個問題:只能使用一次,不能達到復用的效果。
而這個問題的解決辦法為:迴圈佇列。
迴圈佇列
佇列 陣列實現
佇列是一種先進先出的思想。first in first out 我們身邊的與佇列相關例項很多,火車站排隊買票或是買飯是排隊,都是佇列。因此我們很容易想到,佇列是有乙個頭乙個尾的,新來的總是在尾,最先來的總是最先買票或是吃飯,當然,像插隊一類的我們不做考慮,相信我們都不會喜歡這些的。佇列的成員的進出我...
陣列實現佇列
先進先出。insert入佇列,remove出佇列。陣列實現有佇列空,佇列滿。陣列實現佇列 陣列實現簡單佇列有頭和尾 指標 插入元素,隊尾rear指標上移加1。移除元素,隊頭指標上移加1。環繞處理 迴圈佇列 為了避免佇列不滿卻不能插入資料項的情況,可以讓隊頭隊尾指標繞回到陣列開始的位置,這就是迴圈佇列...
陣列實現佇列
咱不囉嗦佇列的特性先進先出,直接上 package com.dfsn.cloud.eureka public class queue arr new object initsize public void add t obj arr pushindex obj pushindex pushindex...