這道題不是很難,難的是看不懂題目! (解析在下面)
題目描述組佇列是佇列結構中一種常見的佇列結構,在很多地方有著廣泛應用。組佇列是是指佇列內的元素分組聚集在一起。組佇列包含兩種命令:1、enqueue,表示當有新的元素進入佇列,首先會檢索是否有同一組的元素已經存在,如果有,則新元素排在同組的最後,如果沒有則插入佇列末尾。
2、 dequeue,表示佇列頭元素出隊
3、 stop,停止操作
建議使用c++自帶的佇列物件queue,程式設計更方便
輸入
第1行輸入乙個t(t<=10),表示1個佇列中有多少個組
第2行輸入乙個第1組的元素個數和數值
第3行輸入乙個第2組的元素個數和數值
(注意:以上輸入的組資料,只作為後續操作命令的分組依據,並非構建一條佇列的指令。)
以此類推輸入完t組以定義同組元素之後,開始輸入多個操作命令(<200),對空的組佇列進行操作,例如輸入enqueue
100,表示把元素100插入佇列
輸出
dequeue出隊的元素
樣例輸入
23 101 102 103
3 201 202 203
enqueue 101
enqueue 201
enqueue 102
enqueue 202
enqueue 103
enqueue 203
dequeue
dequeue
dequeue
stop
樣例輸出
101102
103
#include
#include
#include
using
namespace std;
intfind
(int
**arr,
int t,
int t1,
int fin)
intmain()
}
string str;
vector<
int> vec;
//存放每乙個小組的順序
int index =
0, flag =1;
while
(cin>>str)
else
if(flag1 && i ==
(vec.
size()
-1))
}}}if
(str ==
"dequeue")if
(str ==
"stop")}
for(
int i; i < t +
3; i++
)delete
arr[i]
;delete
que;
delete
arr;
}
題目的測試樣例比較難懂,我們看這個測試樣例就比較容易理解了;
33 101 102 103
3 201 202 203
3 301 302 303
enqueue 201
enqueue 301
enqueue 102
enqueue 101
enqueue 203
enqueue 302
dequeue
dequeue
dequeue
stop
輸出
陣列佇列和迴圈陣列佇列
public class arrayqueuedemo catch exception e break case h trycatch exception e break system.out.println 程式退出 使用陣列模擬arrayqueue類 class arrayqueue 判斷佇列是...
陣列佇列和迴圈佇列
定義乙個queue的介面 public inte ce queue引入之前自定義的動態陣列array類 出隊時間複雜度是o n 其餘為o 1 public class arrayqueue implements queue public arrayqueue override public int ...
陣列佇列總結
陣列佇列是一種大小可以改變,型別沒有定死的類似陣列的工具。不過與陣列相比,它更具有靈活性。因為它不但不用擔心越界問題,而且因為泛型 類似c 中模板的東西 的存在而支援各種型別。以下是陣列佇列的功能實現 import list.student public class arraylist 建構函式一 ...