資料結構與演算法 佇列

2021-08-08 20:57:11 字數 945 閱讀 2753

佇列:佇列與棧不同,它是一種先進先出的結構

實現

1、陣列

2、鍊錶

記錄的資料

1、隊首位置:第乙個元素的位置

2、隊尾位置:最後乙個元素的位置

3、佇列大小:size

佇列操作

entryqueue():入隊

exitqueue():出隊

isqueueempty():隊列為空

isqueuefull():佇列滿

佇列的實現(順序陣列的實現)將佇列的定義放在queue.h中

class

queue

佇列的具體實現:

#include

queue::queue(int size)

queue::~queue()

bool

queue::isqueueempty()

bool

queue::isqueuefull()

void

queue::entryqueue(int item)

}int

queue::exitqueue()

}int

queue::getsize()

上述使用順序陣列的形式實現了佇列,但是這種方式有非常大的弊端:當刪除佇列中的元素時,陣列中head之前空間我們無法再次使用,這樣就造成了極大的空間浪費。解決的方法是使用迴圈佇列或者直接使用鏈式儲存。

資料結構與演算法 佇列

學習了好長 一段時間的資料結構,由於時間關係一直沒有寫部落格。這次打算將這段時間的學習內容寫下來做個整理。佇列作為線性結構的一種,其實用性不用多說。這裡總結下兩種結構的佇列實現。迴圈佇列 先列下以順序表結構形成的普通順序佇列存在的問題 隊頭不斷刪除元素,將使佇列的頭部空出單元 隨著刪除 插入的進行,...

演算法與資料結構 佇列

adt queue d d 資料關係 r r a i d,i 2,3,n r 約定a 1a 1 a1 端為隊首,a na n an 端為隊尾。基本操作 create 建立乙個空佇列 emptyque 若隊列為空,則返回true,否則返回false insertque x 向隊尾插入元素x delet...

資料結構與演算法(佇列)

引言 在上次複習棧的基本操作後,這一次我們來複習佇列的相關知識與操作。至此 我們開始資料結構佇列的學習。2.迴圈佇列 3.鏈式佇列 後記在棧的學習中,我們知道棧是一種只能在一端進行操作的資料結構。而佇列,是一種可以在兩端進行操作的資料結構,是先進先出的操作順序。定義 在一端進行插入操作,在另一端進行...