一、佇列的介紹
佇列(queue),是一種線性儲存結構。它有以下幾個特點:
1、佇列中資料是按照」先進先出(fifo, first-in-first-out)」方式進出佇列的。1. 佇列的示意圖2、佇列只允許在」隊首」進行刪除操作,而在」隊尾」進行插入操作。 佇列通常包括的兩種操作:入佇列 和 出佇列。
佇列中有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...