陣列實現佇列

2022-06-17 18:12:07 字數 1305 閱讀 1627

咱不囉嗦佇列的特性先進先出,直接上**。

package

com.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];}}

view code

實現思路:

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就表示沒有元素。

以下**測試:

public

static

void

main(string args)

catch

(exception e)

}});

t1.start();

thread t2 = new thread(() ->

catch

(exception e)

}});

t2.start();

}

view code

佇列 陣列實現

佇列是一種先進先出的思想。first in first out 我們身邊的與佇列相關例項很多,火車站排隊買票或是買飯是排隊,都是佇列。因此我們很容易想到,佇列是有乙個頭乙個尾的,新來的總是在尾,最先來的總是最先買票或是吃飯,當然,像插隊一類的我們不做考慮,相信我們都不會喜歡這些的。佇列的成員的進出我...

佇列(陣列實現)

在現實中,我們去銀行辦理業務的時候就需要排隊。你來的早,排在前面,就會越早的離開。而在你排的隊就是乙個佇列。佇列是個有序列表,它遵循先進先出的原則。根據佇列的先進先出的原則,我們就可以用 來實現乙個佇列。首先在乙個arrayqueue類中建立乙個陣列來代表乙個佇列 private int array...

陣列實現佇列

先進先出。insert入佇列,remove出佇列。陣列實現有佇列空,佇列滿。陣列實現佇列 陣列實現簡單佇列有頭和尾 指標 插入元素,隊尾rear指標上移加1。移除元素,隊頭指標上移加1。環繞處理 迴圈佇列 為了避免佇列不滿卻不能插入資料項的情況,可以讓隊頭隊尾指標繞回到陣列開始的位置,這就是迴圈佇列...