DS佇列 組佇列 (附解析)

2021-10-25 00:26:53 字數 1951 閱讀 9848

這道題不是很難,難的是看不懂題目! (解析在下面)

題目描述組佇列是佇列結構中一種常見的佇列結構,在很多地方有著廣泛應用。組佇列是是指佇列內的元素分組聚集在一起。組佇列包含兩種命令:

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 建構函式一 ...