佇列是一種只能在一端插入,在另一端刪除的有序線性表,先進先出(first in first out),如現實生活中排隊一樣,佇列抽象資料型別的基本操作如下:
public
inte***ce
queue
使用陣列實現佇列
public
class
arrayqueue
implements
queue
public
arrayqueue()
@override
public
intgetsize()
@override
public
boolean
isempty()
public
intgetcapacity()
@override
public
void
enqueue
(e e)
@override
public e dequeue()
@override
public e getfront()
}
迴圈佇列
public
class
loopqueue
implements
queue
public
loopqueue()
public
intgetcapacity()
@override
public
intgetsize()
@override
public
boolean
isempty()
@override
public
void
enqueue
(e e)
data[tail]
= e;
tail =
(tail +1)
% data.length;
size++;}
@override
public e dequeue()
e e = data[front]
; data[front]
= null;
front =
(front +1)
% data.length;
size--;if
(size ==
getcapacity()
/4&&getcapacity()
/2!=0
)return e;
}@override
public e getfront()
return data[front];}
private
void
resize
(int newcapacity)
data = newdata;
front =0;
tail = size;
}}
資料結構 佇列 queue
佇列 就是生活中的排隊,因此排隊是先到先得,也是先離開隊伍,因此佇列也是採用的先進先出的概念 fifo,慢慢想想作業系統裡面是不是也用到fifo,自己去查吧 到底有沒有 如何能夠準確的定位是先進先出呢,因此採用的就是頭指標front和尾指標rear,通常這兩個指標是封裝成乙個鏈隊 注意front與r...
資料結構 佇列 queue
佇列 queue 是一種採用先進先出 fifo 策略的抽象資料結構,它的想法來自於生活中排隊的策略。顧客在付款結賬的時候,按照到來的先後順序排隊結賬,先來的顧客先結賬,後來的顧客後結賬。同棧的實現一樣,佇列的實現也有陣列實現和鍊錶實現兩種方式。先來看看陣列實現的方法。棧使用top變數記錄棧頂的位置,...
資料結構 佇列queue
佇列 佇列是一種特殊的線性表,特殊之處在於它只允許在表的前端 front 進行刪除操作,而在表的後端 rear 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列是有序集合,新新增的一端為隊尾,另一端為隊頭,當乙個元素從隊尾進入佇列時,一直...