題目描述:
程式設計客棧大家都知道資料結構裡面有乙個結構叫做迴圈佇列。顧名思義,這是乙個佇列,並且是迴圈的。但是現在,淘氣的囧哥給這個迴圈佇列加上了一些規矩,其中有5條指令:
(1) push k, 讓元素k進佇列。
(2) pop,對頭元素出佇列。
(3) query k,查詢佇列中第k個元素,注意k的合法性。
(4) isempty,判斷佇列是否為空。
(5) isfull,判斷佇列是否已滿。
現在有n行指令,並且告訴你佇列大小是m。
輸入: 第一行包含兩個整數n和m。1<=n,m<=100000。
接下來有n行,表示指令,指令格式見題目描述。
其中元素均在int範圍。
輸出: 對於指令(1),若佇列已滿,輸出failed,否則不做輸出。
對於指令(2),若佇列已空,輸出failed,否則不做輸出。
對於指令(3),輸出佇列中第k個元素,若不存在,輸出failed。
對於指令(4)和(5),則用yes或者no回答。
詳情見樣例。
樣例輸入:
12 2push 1push 2push 3query 2query 3isemptyisfullpoppoppopisemptyisfull
樣例輸出:
failed2failednoyesfailedyesno
ac**:
#include
#include
#include
#define queuesize 100001 //最大佇列長度
struct queue
; void initqueue(struct queue *q);
void enqueue(struct queue *q, int element, int m);
void dequeue(struct queue *q, int m);
void queuesearch(struct queue *q, int k, int m);
int main()
else if (strcmp(command,"pop") == 0)
else if (strcmp(command,"query") == 0)
else if (strcmp(command,"isempty") == 0)
else
}else if (strcmp(command,"isfull") == 0)
else
} }
}
return 0;
} /**
* description:佇列初始化
*/ void initqueue(struct queue *q)
/**
* description:入隊操作
*/ void enqueue(struct queue *q, int element, int m)
else
} /**
* description:出隊操作
*/ void dequeue(struct queue *q, int m)
else
} /**
* description:查詢佇列中的指定元素
*/ void queuesearch(struct queue *q, int k, int m)
else
} 本文標題: 使用c語言來解決迴圈佇列問題的方法
本文位址:
迴圈佇列 C語言
佇列的特點是先進先出。在佇列的儲存過程中,不僅使用了一組位址連續的儲存單元存放從佇列頭到佇列尾的元素,而且還附設了兩個指標front和rear,分別指示佇列頭元素及佇列尾元素的位置。佇列操作示意圖 出自嚴蔚敏版資料結構 對鍊錶的增加是通過移動rear指標,鍊錶的刪除時通過移動front的移動。通過這...
迴圈佇列的實現(C語言)
迴圈佇列 vs2010 除錯 include include include define max size 6 define true 1 define false 0 define overflow 0 define ok 1 define error 0 typedef struct seq ...
C語言迴圈佇列的實現
迴圈佇列的操作包括初始化 求佇列的長度 入隊 出隊 取隊頭元素。下面是實現 在初始化之前,先進行預定義 define ok 1 define error 0 define overflow 2 define maxsize 100 typedef int status typedef int ele...