添加頭文件
聲明宏定義
設計數據結構
功能函數聲明
具體功能實現
注:因爲隊頭和隊尾都指向第一/最後一個有效元素,因此queue->tall指向-1更合適,而不是指向前/下一個空元素,方便查詢
簡單調用測試
int main()
{
Queue* queue = creat_queue(10);
for(int i=0; i<15; i++)
{
printf("入隊%s,",push_queue(queue,i)?"成功":"失敗");
printf("隊尾:%d\n",*tall_queue(queue));
}
printf("---------------------\n");
for(int i=0; i<5; i++)
{
printf("隊頭:%d,",*head_queue(queue));
printf("出隊%s\n",pop_queue(queue)?"成功":"失敗");
}
printf("---------------------\n");
for(int i=77; i<88; i++)
{
printf("入隊%s,",push_queue(queue,i)?"成功":"失敗");
printf("隊尾:%d\n",*tall_queue(queue));
}
}
結果
總結
創建:初始化各參數
銷燬:直接釋放
隊空:通過cnt判斷
隊滿:通過cnt判斷
入隊:隊不滿則回頭(隊頭前面有空,隊尾就跑到了隊頭前面),給隊尾賦值
出隊:隊不空則回頭
隊頭:隊不空,返回隊頭
隊尾:隊不空,返回隊尾