佇列最簡單的表示方法是用陣列. 為了實現正確判斷佇列空和佇列滿兩種情況, 我們需要2個指標,
front(指向第乙個元素的前乙個元素), rear(指向最後乙個元素).
在初始情況下, front和rear都等於-1, 每入隊乙個元素rear都加1, 當rear=maxsize-1時,
即佇列已滿. 每出隊乙個元素, front+1
完整**實現如下:
#include #include struct queue ;
typedef struct queue node;
typedef struct queue* link;
// 函式宣告
link createqueue (int maxsize);
void printqueue (link q);
int isfull (link q);
int isempty (link q);
int add (link q, int x);
int del (link q);
int main ()
printqueue(qhead);
// 出隊測試
del(qhead);
del(qhead);
del(qhead);
printqueue(qhead);
return 0;
}// 建立空佇列
link createqueue (int maxsize)
// 列印
void printqueue (link q) else
}printf("\n");
}// 判斷佇列是否已滿
// 是返回1, 否返回0
int isfull (link q) else
}// 判斷佇列是否為空
// 是返回1, 否返回0
int isempty (link q) else
}// 入隊
int add (link q, int x)
q->rear += 1;
q->data[q->rear] = x;
return 1;
}// 出隊
// 錯誤返回0, 正確返回被出隊元素的值
int del (link q)
q->front += 1;
return q->data[q->front];
}
佇列 順序儲存 簡單實現
佇列最簡單的表示方法是用陣列.為了實現正確判斷佇列空和佇列滿兩種情況,我們需要2個指標,front 指向第乙個元素的前乙個元素 rear 指向最後乙個元素 在初始情況下,front和rear都等於 1,每入隊乙個元素rear都加1,當rear maxsize 1時,即佇列已滿.每出隊乙個元素,fro...
佇列的順序儲存實現
順序儲存佇列標頭檔案 1 pragma once 2 include3 include4 define max size 102456 順序佇列結構體 7 typedef struct seqqueue 8seqqueue 1213 初始化佇列 14 seqqueue init seqqueue 1...
佇列 迴圈佇列 的順序儲存實現
佇列的順序儲存實現 1 佇列 一端進,另一端出 佇列由兩個引數決定,front 頭 rear 尾 頭指標指向頭乙個元素,尾指標指向指向最後乙個元素的下一儲存單元 若陣列長度為n,當元素個數為n 1時就認為佇列已滿。r指向最後乙個空的元素空間。出隊 頭指標往上移動,入隊 尾指標向上移動,故 靜態佇列只...