2011-06-20 103 views
1

您將編寫一個計算機程序,其中數據收集的要求是應該保持順序,並且會有大量的添加和從集合中刪除。什麼樣的數據結構最適合建模?數據結構問題

我在想矢量圖,但沒有排序。有什麼建議麼?我敢肯定,答案是盯着我的臉,但看看我的筆記,我找不到任何點擊。

任何幫助,這將不勝感激。

+0

我假設這是作業嗎? – Bart

+0

如果這是一項家庭作業,請添加一個作業標籤。 –

+0

正如問題所述,它與C++無關。你想知道在C++中使用什麼數據結構,或者你想知道一般使用什麼數據結構? –

回答

2

經典答案是:一棵樹。最簡單的是二叉搜索樹,但你也可能想要尋找紅黑樹或AVL樹。 boost graph library也可能是一個很好的起點。

1

看到... ...如果添加和刪除操作只從前端和末端,你可以喜歡使用QUEUE 但如果它可以從任何地方的數據的話,我會建議link list ....雖然有點困難管理,但有效的刪除和更新可能會發生...... 希望這可以幫助.... 編輯.... 添加到我的答案和更精確... tree是一個選項.....

+0

如果你想保持排序.... B-Tree是一個很好的選擇..... –

0

我認爲矢量就足夠了。

std::vector<int> d; 
d.push_back(1); 
d.push_back(4); 
d.push_back(2); 
d.push_back(3); 
std::vector<int>::const_iterator it; 
for (it = d.begin(); it != d.end(); it++) { 
    std::cout << *it << std::endl; // show 1 4 2 3 
} 
// language: cpp 

還是你的意思是「ORDER」是「SORTED」?