佇列ADT實現

2021-06-02 21:08:11 字數 803 閱讀 9201

佇列也比較的簡單,先進先出。流行的做法也是用陣列實現。

結構體如下:

struct queue

;#include

#include

struct queue

;typedef struct queue queue;

/*建立乙個空的佇列

形參代表這個佇列的長度最大是多少*/

queue *createqueue(int capacity)

/*判斷乙個佇列是否為空

為空的話返回1,否則返回0*/

int isempty(queue* q)

/*判斷乙個佇列是否為滿

滿的話返回1,否則返回0*/

int isfull(queue*q)

/*入隊*/

void inqueue(int x, queue* q)

q->size++;

q->num[q->rear++]=x;

if(q->rear ==q->capacity)

q->rear=0;//使用迴圈陣列方式

}/*出隊

返回元素的值*/

int outqueue(queue *q)

temp=q->num[q->front];

q->size--;

q->front++;

if(q->front==q->capacity)

q->front=0;

return temp;

}/*釋放佇列所佔的空間*/

void deletequeue(queue* q)

}

優先佇列ADT的實現

優先佇列是一種特殊的佇列,基於二叉堆實現,在插入 刪除元素上具有較好的演算法效能。由於二叉堆的高度為logn,故在插入 刪除元素時最多調整logn次,時間複雜度為o logn 給出優先佇列adt的 其中priority judge為優先順序判斷。一般來說,在插入 刪除操作時,優先順序較高的應往堆頂調...

迴圈佇列ADT實現(C )2018 3 15

include using namespace std 迴圈佇列adt 定義結點 struct qnode 迴圈佇列結構體 struct queue 初始化迴圈佇列 void init queue struct queue q 銷毀佇列 void destroy queue struct queue...

資料結構 佇列ADT的實現

佇列是一種特殊的線性表,資料元素之間是線性關係,其插入和刪除操作分別在兩邊進行,一端只能插入,另一端只能刪除。隊首 front 進行刪除操作的一端 隊尾 rear 進行插入操作的一端 入隊 在隊尾插入乙個元素 出隊 在隊首插入乙個元素 特性 元素的操作順序符合 先進先出 fifo 或 後進後出 li...