(三)基本資料結構 佇列

2021-09-24 03:53:30 字數 3012 閱讀 8947

三、具體**實現

陣列佇列的實現

佇列作為最常見的資料結構之一,其作用不言而喻。我將自定義乙個佇列的類,該佇列是基礎之前所學習的動態陣列實現的。本文實現了陣列佇列與迴圈佇列兩種資料結構。

由於棧是fifo(first in first out)型別,則棧的增刪只存在入隊enqueue()和出隊dequeue()

遇到的問題與除錯解決

data = newdata;//先傳遞

front = 0;此時強行改變了front指標,不影響隊首元素

tail = getsize();//由於先給的front

//此時getsize中的返回值與front有關所以報錯

則傳遞後的data front和getsize()不正確。正確的語句應為

tail = getsize();

front = 0;

data = newdata;

迴圈佇列的**
package queue;

public

class

loopqueue

implements

queue

public

loopqueue()

public

intgetcapacity()

@override

public

void

enqueue

(e e)

data[tail]

= e;

tail =

(tail +1)

% data.length;

}@override

public e dequeue()

@override

public e getfront()

@override

public

boolean

isempty()

@override

public

intgetsize()

public

void

resize

(int newcapacity)

@override

public string tostring()

res.

("]");

return res.

tostring()

;}public

static

void

main

(string[

] args)}}

}執行結果:

queue: size =

1, capacity =

10 front [0]

queue: size =

2, capacity =

10 front [0,

1]queue: size =

3, capacity =

10 front [0,

1,2]

queue: size =

2, capacity =

5 front [1,

2]queue: size =

3, capacity =

5 front [1,

2,3]

queue: size =

4, capacity =

5 front [1,

2,3,

4]queue: size =

5, capacity =

5 front [1,

2,3,

4,5]

queue: size =

4, capacity =

5 front [2,

3,4,

5]queue: size =

5, capacity =

5 front [2,

3,4,

5,6]

queue: size =

6, capacity =

10 front [2,

3,4,

5,6,

7]queue: size =

7, capacity =

10 front [2,

3,4,

5,6,

7,8]

queue: size =

6, capacity =

10 front [3,

4,5,

6,7,

8]queue: size =

7, capacity =

10 front [3,

4,5,

6,7,

8,9]

由於基礎array實現 array**在array的介紹中檢視,這裡不再贅述。

陣列佇列的**

package queue;

import array.array;

public

class

arrayqueue

implements

queue

public

arrayqueue()

@override

public

void

enqueue

(e e)

@override

public e dequeue()

@override

public e getfront()

@override

public

intgetsize()

@override

public

boolean

isempty()

public

intgetcapacity()

@override

public string tostring()

res.

("]");

return res.

tostring()

;}

基本資料結構 佇列

佇列實現的是一種先進先出 first in,first out,fifio 的策略,佇列中的插入的操作稱為入隊 enqueue 佇列的刪除操作稱為出隊 dequeue 定義乙個陣列來實現佇列 public class queue public queue int n public boolean i...

基本資料結構 佇列(queue)

像棧一樣,佇列 queue 也是一種線性表,它的特性是先進先出,插入在一端,刪除在另一端。就像排隊一樣,剛來的人入隊 push 要排在隊尾 rear 每次出隊 pop 的都是隊首 front 的人。如圖1,描述了乙個佇列模型。和棧一樣,佇列也有陣列實現和鍊錶實現兩種,兩種實現都能給出快速的o 1 執...

基本資料結構 鏈式佇列

佇列 queue 是只允許在一端進行插入,而在另一端進行刪除的運算受限的線性表 1 允許刪除的一端稱為隊頭 front 2 允許插入的一端稱為隊尾 rear 3 當佇列中沒有元素時稱為空佇列。4 佇列亦稱作先進先出 first in first out 的線性表,簡稱為fifo表。佇列的修改是依先進...