咱不囉嗦佇列的特性先進先出,直接上**。
packageview codecom.dfsn.cloud.eureka;
public
class queue
arr = new
object[initsize];
}public
void
add(t obj)
arr[pushindex++] =obj;
pushindex = pushindex == arr.length ? 0: pushindex;
size++;
}public
t get()
int temp =getindex;
getindex++;
getindex = getindex == arr.length ? 0: getindex;
size--;
return
(t) arr[temp];}}
實現思路:
1 有乙個存放資料的陣列,該陣列的長度在queue物件初始化時需要設定容量。
2 往佇列新增元素,size變數預設是0。如果size等於陣列的長度。表示當前佇列已經滿了,如果沒有滿則向佇列新增元素,新增元素後將size自增1。pushindex標記下乙個可用佇列的位置,預設是0。如果queue的大小是3則pushindex的值是0,1,2。在每次新增元素後,將pushindex自增1,自增後的標記位如果等於陣列的長度,則重置位置為0。意思就是當0,1,2新增完畢後,下乙個元素要想新增只能新增到0位置,但是這會不會覆蓋原有的元素?不會,因為有size變數限制。新增3個元素後就不能在新增了。
3 元素出佇列,首先判斷size如果是0則表示沒有元素,不能出,如果不等於0則表示有元素可以出,size自減1。getindex標記下乙個出佇列的位置,預設是0。每齣乙個元素自增1,然後判斷出佇列位置是否等於佇列長度,如果大於則重置位置為0,也就限定了,出佇列的順序是0,1,2。那會不會出現下標越界呢?不會,因為有size判斷,如果size是0就表示沒有元素。
以下**測試:
publicview codestatic
void
main(string args)
catch
(exception e)
}});
t1.start();
thread t2 = new thread(() ->
catch
(exception e)
}});
t2.start();
}
佇列 陣列實現
佇列是一種先進先出的思想。first in first out 我們身邊的與佇列相關例項很多,火車站排隊買票或是買飯是排隊,都是佇列。因此我們很容易想到,佇列是有乙個頭乙個尾的,新來的總是在尾,最先來的總是最先買票或是吃飯,當然,像插隊一類的我們不做考慮,相信我們都不會喜歡這些的。佇列的成員的進出我...
佇列(陣列實現)
在現實中,我們去銀行辦理業務的時候就需要排隊。你來的早,排在前面,就會越早的離開。而在你排的隊就是乙個佇列。佇列是個有序列表,它遵循先進先出的原則。根據佇列的先進先出的原則,我們就可以用 來實現乙個佇列。首先在乙個arrayqueue類中建立乙個陣列來代表乙個佇列 private int array...
陣列實現佇列
先進先出。insert入佇列,remove出佇列。陣列實現有佇列空,佇列滿。陣列實現佇列 陣列實現簡單佇列有頭和尾 指標 插入元素,隊尾rear指標上移加1。移除元素,隊頭指標上移加1。環繞處理 迴圈佇列 為了避免佇列不滿卻不能插入資料項的情況,可以讓隊頭隊尾指標繞回到陣列開始的位置,這就是迴圈佇列...