佇列(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...