慄醬有一天在網上衝浪的時候發現了一道很有意思的資料結構題。
該資料結構形如長條形。
一開始該容器為空,有以下七種操作。
1 a從前面插入元素a
2 從前面刪除乙個元素
3 a從後面插入乙個元素
4 從後面刪除乙個元素
5 將整個容器頭尾翻轉
6 輸出個數和所有元素
7 對所有元素進行從小到大排序
只有一組資料,第一行n≤50000,m≤200000, a≤100000 代表最大資料數目和操作次數。
接下來每一行乙個操作如上描述。保證所有操作合法(不會在容器為空時刪除元素)。
6、7操作共計不會超過10次。
當執行6操作時,第一行先輸出當前的個數,然後從頭到尾按順序輸出,每兩個元素之間用乙個空格隔開,末尾不能有空格。
10 9
1 13 5
3 4645
6763
1 5 4
25 1
21 5
#include
#include
#include
#include
#include
#include
using
namespace std;
intmain()
else
}break
;case7:
sort
(s.begin()
,s.end()
);break;}
}return0;
}
這題我用的是vector,要注意的是vector不能使用push_front()和pop_front(),但是雙端佇列deque可以使用,而這題也可以使用雙端佇列來寫。 STL的資料結構
1.vector 底層資料結構為陣列 支援快速隨機訪問 2.list 底層資料結構為雙向鍊錶,支援快速增刪 3.deque 底層資料結構為乙個 控制器和多個緩衝區,詳細見stl原始碼剖析p146,支援首尾 中間不能 快速增刪,也支援隨機訪問 deque是乙個雙端佇列 double ended que...
資料結構 STL
棧 先入後出 filo 的一種資料結構。常見操作 模擬火車調頭,進製轉換,表示式求值,單調棧 陣列形式 理解 const int num 1e6 10 定義棧的大小,可自由改變 int stac num 乙個整型棧 int top 棧頂指標 int main top 1 設定棧頂指標為 1 stac...
資料結構 stl
uva 11997 題意 給你乙個數k,並且給你k組數,每組k個數,現在在每組中任取乙個數,然後相加可以得到乙個和,這樣的和共有k k個,要求輸出所有可能的和值中最小的k個。思路 問題1 如果只有a,b,c三個大小為k的陣列,我們如何求 和 能獲得最小的前k個和呢?我們只需要將a和b陣列求出前k小的...