資料結構之佇列

2021-07-05 09:43:11 字數 2203 閱讀 3936

一、佇列的介紹

佇列(queue),是一種線性儲存結構。它有以下幾個特點:

1、佇列中資料是按照」先進先出(fifo, first-in-first-out)」方式進出佇列的。

2、佇列只允許在」隊首」進行刪除操作,而在」隊尾」進行插入操作。 佇列通常包括的兩種操作:入佇列 和 出佇列。

1. 佇列的示意圖

佇列中有10,20,30共3個資料。

2. 出佇列

出佇列前:隊首是10,隊尾是30。

出佇列後:出佇列(隊首)之後。隊首是20,隊尾是30。

3. 入佇列

入佇列前:隊首是20,隊尾是30。

入佇列後:40入佇列(隊尾)之後。隊首是20,隊尾是40。

二、佇列的實現

實現1:陣列實現

實現2:鍊錶實現

陣列實現完整**:

//標頭檔案

#ifndef queue_h

#define queue_h

class queue

int gethead();

int gettail();

bool empty()

bool full()

void display();

private:

int *data;

const

int maxsize=50;

int head;

int tail;

};#endif // !queue_h

//實現檔案

#include "queue.h"

#include

queue::queue()

queue::~queue()

void queue::enqueue(int x)

else

data[tail++] = x;

}}int queue::dequeue()

}int queue::gethead()

int queue::gettail()

void queue::display()

}}//測試檔案

#include

#include "queue.h"

using

namespace

std;

int main()

鍊錶實現完整**:

//標頭檔案

#ifndef linkqueue_h

#define linkqueue_h

#include

struct node

;class linkqueue

private:

node *head; //head指向無用的頭結點, head->pnext才是指向隊首元素, tail指向隊尾元素

node *tail;

};#endif // !linkqueue_h

//實現檔案

#include "linkqueue.h"

linkqueue::linkqueue()

linkqueue::~linkqueue()

void linkqueue::enqueue(int x)

int linkqueue::dequeue()

}void linkqueue::display()

delete node;

}}//測試檔案

#include "linkqueue.h"

using

namespace

std;

int main()

資料結構之佇列

八 佇列 鏈式佇列 鍊錶實現 隊尾 rear 隊首 front 靜態佇列 陣列實現 必須是迴圈佇列 需要幾個引數來確定,各引數含義 1 佇列初始化 front和rear值都是0 2 佇列非空 front代表佇列第乙個元素 rear代表佇列最後乙個元素的 下乙個元素 3 佇列空 front和rear相...

資料結構之佇列

與棧相反,佇列是一種先進先出的線性表,它只允許在表的一端進行,而在另一端刪除元 素。在佇列中,允許插入的一端叫做隊尾,允許刪除的一端則稱為隊頭。1 鏈佇列 佇列的鏈式表示和實現 用鍊錶表示的佇列簡稱為鏈佇列,乙個鏈佇列顯然需要兩個分別指示對頭和隊尾的指標 分別稱為頭指 針和尾指標 才能唯一確定。這裡...

資料結構之佇列

標籤 空格分隔 資料結構 佇列是一種特殊的線性表,特殊之處在於它只允許在表的前端 front 進行刪除操作,而在表的後端 rear 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。是一種先進先出 fifo first in first out...