佇列的建立以及基本操作

2021-08-15 15:42:58 字數 2611 閱讀 5697

佇列(fifo)是只允許在一段插入,另一端刪除的線性表,遵循先進先出原則,隊頭刪除,隊尾插入。

順序佇列

使用用陣列儲存 

初始條件front =rear=0

滿佇列:rear=m    容量m

空佇列:   front=rear 

結構:

typedef struct

queue;

操作:

/初始化佇列

queue initqueue()

//插入

int inqueue(queue *p,int e)

} //刪除

int dequeue(queue *p,int *e)

}

測試:

#include#include#define max 10

//順序佇列,用陣列儲存

//初始條件 front =rear=0

//滿:rear=m 容量m

//空 front=rear

typedef struct

queue;

//初始化佇列

queue initqueue()

//插入

int inqueue(queue *p,int e)

} //刪除

int dequeue(queue *p,int *e) }

//列印

void print(queue *p)

} int main()

迴圈佇列

front指向隊頭元素,rear指向隊尾元素的下乙個位置(防止隊頭隊尾重合),

當front=rear時是空佇列

以下有幾個公式需記:

1.設佇列的最大尺寸max,佇列滿的條件是;

(rear+1)%max==front

2.通用的計算佇列長度公式:

(rear-front+max)%max

迴圈佇列的順序儲存結構;

typedef  struct

squeue;

基本操作:

//初始化   注意  

int initqueue(squeue *q)

//迴圈佇列求長度

int queuelength(squeue *q)

//入隊

int enqueue(squeue *q,int e)

//出隊

int dequeue(squeue *q,int *e)

測試**:

#include#include#define max 10

//迴圈鍊錶的順序儲存

typedef struct

squeue;

//初始化 注意

int initqueue(squeue *q)

//迴圈佇列求長度

int queuelength(squeue *q)

//入隊

int enqueue(squeue *q,int e)

//出隊

int dequeue(squeue *q,int *e)

//列印

void print(squeue *q)}

int main()

鏈佇列相當於尾進頭出的鍊錶

front指向頭結點 非第乙個結點,rear指向終端結點,即最後乙個結點

結構如下:

typedef struct qnode

qnode,qnodeptr;

typedef struct

linkqueue;

基本操作:

//初始化

linkqueue initqueue(linkqueue *p)

//入隊

int enqueue(linkqueue *q,int e)

//出隊

int dequeue(linkqueue *q,int *e)

測試**:

#include#include//相當於尾進頭出的鍊錶

//front指向頭結點 非第乙個結點,rear指向終端結點,即最後乙個結點

typedef struct qnode

qnode,*qnodeptr;

typedef struct

linkqueue;

//初始化

int initqueue(linkqueue *p)

//入隊

int enqueue(linkqueue *q,int e)

//出隊

int dequeue(linkqueue *q,int *e)

void print(linkqueue q)

}int main()

環形佇列的建立以及一些基本的操作

我們的環形佇列長什麼樣子的尼,那幾句話也描述不出來概括不了他的樣子,還是拿一張圖看一下吧 原始檔完善函式介面 include queue.h include include include plistnode buylistnode qdatatype data pnewnode data data...

二項佇列的建立及其基本操作

include include 二項佇列支援合併,插入,刪除最小值等操作,且每次操作最壞花費log n 二項佇列不是乙個堆序,而是一群堆序的集合 define infinity 10000 define maxtrees 14 capacity size 2 14 1 define capacity...

佇列 鏈式儲存佇列的定義以及基本操作 超詳細!

include include 帶頭結點的鏈隊 結點的結構體定義 typedef struct linknode linknode 鏈隊的結構體定義 typedef struct linkqueue 初始化 創 void initialize queue linkqueue q 判空 void em...