陣列模擬佇列

2021-10-07 19:50:21 字數 1986 閱讀 3700

1.佇列本身是有序列表,若使用陣列的結構來儲存佇列的資料,則佇列陣列的宣告如下圖, 其中 maxsize 是該隊

列的最大容量。

2.因為佇列的輸出、輸入是分別從前後端來處理,因此需要兩個變數 front 及 rear 分別記錄佇列前後端的下標,

front 會隨著資料輸出而改變,而 rear 則是隨著資料輸入而改變

class

queue

public

queue

(int maxsize)

/** * 入隊操作

*/public

void

push

(int element)

arr[rear]

= element;

rear =

(rear +1)

% maxsize;

}/**

*出隊操作

*/public

intpop()

throws runtimeexception

int element = arr[front]

; front =

(front +1)

% maxsize;

return element;

}/**

* 獲取當前元素個數**/

public

intsize()

/** * 判空操作

* 單front指標和rear指標指向同一位置時,則為空

*/public

boolean

isempty()

/** * 判滿操作

* rear指標再移動一位等於front,說明此時佇列已滿

*/public

boolean

isfull()

@override

public string tostring()

return sb.

tostring()

;}}public

class

queuedemo

}

class

queuee

/** *

* @param clazz 要例項化物件陣列的具體型別

* @param initcapacity 初始化的最大容量

*/public

queuee

(class

clazz,

int initcapacity)

/** * 入隊

*/public

void

push

(e element)

arr[rear]

= element;

rear =

(rear+1)

% maxsize;

}/**

* 出隊

*/public e pop()

e element = arr[front]

; front =

(front +1)

% maxsize;

return element;

}/**

* 獲取當前元素個數**/

public

intsize()

/** * 判空操作**/

public

boolean

isempty()

/** * 判滿操作

*/public

boolean

isfull()

@override

public string tostring()

return sb.

tostring();}}

陣列模擬佇列

指標位置 front 指向佇列的第乙個元素,也就是說front就是 陣列的第乙個元素。front的初始值 0。rear 指向佇列的最後乙個元素的後乙個位置.因為希望空出 乙個空間做為約定。rear 的初始值 0。判空條件if front rear 佇列滿判斷條件if rear maxsize 1 有...

陣列模擬佇列

佇列是乙個有序列表,可以用陣列或是鍊錶來實現。遵循先入先出的原則。即 先存入佇列的資料,要先取出。後存入的要後取出 檢視佇列頭資訊 trycatch exception e break case e 退出 scanner.close loop false break default break sy...

陣列模擬佇列

原題鏈結 陣列模擬佇列和陣列模擬棧其實很類似,都是用乙個陣列來儲存元素,用指標表示當前可以操作的位置。區別就是棧只能在棧頂進行操作,所以只需要有乙個top指標指向棧頂。而佇列可以在隊頭和隊尾都進行操作 出隊 入隊 所以需要兩個指標head和tail指向隊頭和隊尾。如果有元素入隊,則tail加一,指向...