initqueue(&q) :初始化佇列,構造乙個空佇列q
queueempty(q) :判佇列空,若隊列為空返回true,否則false
enqueue(&q,x) :入隊,若佇列q未滿,將x加入,使之成為新的隊尾
dequeue(&q,&x):出隊,若佇列q非空,刪除隊頭元素,並用x返回
gethead(q,&x) :讀隊頭元素,若佇列q非空,則將隊頭元素賦值給x
初始狀態(隊空):q.front=q.rear=0
進隊操作 :隊不滿時,先送值到隊尾元素,再將隊尾指標加1
出隊操作 :隊非空時,先取隊頭元素值,再將對頭指標加1
初始時:q.front=q.rear=0
隊首指標進1:q.front=(q.front+1)%maxsize
隊尾指標進1:q.rear=(q.rear+1)%maxsize
佇列長度:(q.rear+maxsize-q.front)%maxsize
出隊入隊時:指標都按順時針方向進1
陣列實現
//佇列操作
#include#define maxsize 50
#define elemtype int
typedef structsqqueue;
//初始化
void initqueue(sqqueue *q)
//判隊空
int isempty(sqqueue q)
//入隊
int enqueue(sqqueue *q,elemtype x)
//出隊
int dequeue(sqqueue *q,elemtype *x)
int main()
printf("\n出隊序列為:");
while(!isempty(q))
}
鍊錶實現:
//佇列的鏈式表示方式
#include#include#define elemtype int
typedef struct linknodelinknode;
typedef structlinkqueue;
//初始化佇列
void initlinkqueue(linkqueue *q)
//判隊空
int isempty(linkqueue q)
//入隊
void enlinkqueue(linkqueue *q,elemtype e)
//出隊
int delinkqueue(linkqueue *q,elemtype *e)
int main()
printf("\n出隊序列為:");
while(isempty(q)==0)
return 0;
}
雙端佇列實現《順序》
#include#include#define elemtype int
#define maxsize 50
typedef struct nodesqnode,*squeue;
//初始化佇列
void initqueue(squeue q)
//判空
int isemptyqueue(sqnode q)
//底部出隊
int enbasequeue(squeue q,elemtype *e)
//底部入隊
int debasequeue(squeue q,elemtype e)
//底部出隊
int entopqueue(squeue q,elemtype *e)
//頂部入隊
int detopqueue(squeue q,elemtype e)
int main()
資料結構 佇列
一 佇列的迴圈陣列實現。1 初始化 空佇列。令rear front 0。2 入佇列 約定rear指向佇列尾元素的下乙個位置。入佇列時,先判斷佇列是否已滿,而後將array rear x 然後rear 3 出佇列 約定front指向佇列的首元素位置。出佇列時,先判斷佇列是否為空,而後返回隊首元素re ...
資料結構 佇列
資料參考自 資料結構c 語言描述 佇列是一種先進先出的資料結構,這與棧正好相反。下例是簡單的queue實現 queue.h檔案 ifndef queue h define queue h include include 資料元素結構 自定義 struct datatype 佇列元素最大數 const...
資料結構 佇列
code for fun created by dream whui 2015 1 25 include stdafx.h include include using namespace std define true 1 define false 0 define ok 1 define erro...