用 list 解決約瑟夫問題。
約瑟夫問題是:有 n 只猴子,按順時針方向圍成一圈選大王(編號為 1~n),從第 1 號開始報數,一直數到 m,數到 m 的猴子退到圈外,剩下的猴子再接著從 1 開始報數。就這樣,直到圈內只剩下乙隻猴子時,這個猴子就是猴王。程式設計求輸入 n、m 後,輸出最後猴王的編號。
輸入資料:每行是用空格分開的兩個整數,第乙個是 n,第二個是 m(00 0
輸出要求:對於每行輸入資料(最後一行除外),輸出資料也是一行,即最後猴王的編號。
輸入樣例:
6 212 4
8 30 0
輸出樣例:
5
#include #include using namespace std;
int main()
it = monkeys.erase(it); //刪除元素後,迭代器失效,
//要重新讓迭代器指向被刪元素的後面
if (it == monkeys.end())
it = monkeys.begin();
}cout << monkeys.front() << endl; //front返回第乙個元素的引用
}return 0;
}
c stl的list(雙向鍊錶)
1.list初始化 1 listt 沒有任何元素 2 listt 10 建立有 10個元素的鍊錶 3 listt 10,3 建立有 10個元素的鍊錶,並且每個元素為3 2.對鍊錶進行插入操作 1 前插法 在鍊錶頭部插入新元素,鍊錶自動擴張,形式 t.push front 8 2 尾插法 在鍊錶尾部插...
C STL之雙向鍊錶list
一 list的基本使用以及耗時測試 include include qsort bsearch null includeusing namespace std const int size 100000 int main cout 插入1000000個元素耗時為 clock start endl c...
C STL之list雙向鍊錶容器
不同於採用線性表順序儲存結構的vector和deque容器,list雙向鍊錶中任一位置的元素查詢 插入和刪除,都具有高效的常數階演算法時間複雜度o 1 list技術原理 為了支援前向和反向訪問list容器的元素,list採用雙向迴圈的鍊錶結構組織資料元素,鍊錶的每個節點包括指向前驅的指標 實際資料和...