我想在C中實現Set。 創建SET時可以使用鏈表嗎?還是應該使用其他方法?如何實現一套?
你通常如何實現自己的設置(如果需要)。
注: 如果我使用鏈表的辦法,我可能會Set有如下的複雜性我的操作:
- INIT:O(1);
- destroy:O(n);
- insert:O(n);
- 刪除:O(n);
- union:O(n * m);
- intersection:O(n * m);
- 區別:O(n * m);
- ismember:O(n);
- issubset:O(n * m);
- setisequal:O(n * m);
O(n * m)似乎可能有點大,特別是對於大數據...有沒有一種方法來實現我的設置更有效率?
不知道你想要達到什麼,很難提供幫助。如果你只想擁有一個像結構一樣的數組,Vector就可能是你的出路。我假設你實際上正在使用C++。 STL有大量的東西可以幫助你。 – thecoshman 2010-03-29 12:11:44
C++將其集合類作爲平衡二叉樹實現 - 這可能是一個不錯的選擇。 – 2010-03-29 12:12:25
@thecoshman由於他的問題被標記爲C,我想我們可以假設他沒有使用C++。 – 2010-03-29 12:13:30