73 資料結構 佇列Queue

2021-08-22 00:26:14 字數 1599 閱讀 4111

佇列是一種只能在一端插入,在另一端刪除的有序線性表,先進先出(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 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列是有序集合,新新增的一端為隊尾,另一端為隊頭,當乙個元素從隊尾進入佇列時,一直...