如果我希望不使用 的LinkedList在列表中使用通過索引訪問我的數據結構多少錢,我救? 如果我不能100%確定我將永遠不會使用按索引訪問,我想知道其中的差異。
假設我有N個實例。在LinkedList中插入和刪除將只是一個o(1)op,其中在List中它可能是O(n),但由於它已經優化,所以很高興知道n的某些值有什麼區別。 說N = 1,000,000和N = 1,000,000,000
如果我希望不使用 的LinkedList在列表中使用通過索引訪問我的數據結構多少錢,我救? 如果我不能100%確定我將永遠不會使用按索引訪問,我想知道其中的差異。
假設我有N個實例。在LinkedList中插入和刪除將只是一個o(1)op,其中在List中它可能是O(n),但由於它已經優化,所以很高興知道n的某些值有什麼區別。 說N = 1,000,000和N = 1,000,000,000
List<T>
只是一個數組的封裝。 LinkedList<T>
只有在訪問順序數據(向前或向後)時纔是最有效的。
鏈接列表提供非常快的插入或刪除列表成員。在鏈表的每個成員包含一個指向該列表中的下一個成員,以便在位置i插入的成員:
update the pointer in member i-1 to point to the new member
set the pointer in the new member to point to member i
+1000如果我可以花時間回答一個模糊的問題(用正確的答案)。 – 2011-05-03 14:31:08
Ehhh,聲稱「List
@Cody:我必須同意下劃線實現邏輯。這取決於微軟。 – Priyank 2011-05-03 14:48:58
您是否檢查過此主題? When should I use a List vs a LinkedList 似乎有大多數您正在尋找的信息。
LinkedList<T>
對於在列表中執行許多隨機插入和刪除項目很有用。否則,List<T>
可能是最好的選擇,因爲它沒有鏈接列表中的元素(也可以被索引)的開銷。
但是,如果你關心性能,你真的需要測試你的實際代碼。
數據不足。請提供一些具體的細節。 – 2011-05-03 14:22:16
@Mr。失望:現在失望了? :P(抱歉無法抗拒) – 2011-05-03 14:22:48
LinkList不是一個通用集合,它是一個LinkList,List是一個簡單數組的通用版本。你的問題就像問一隻貓是否會喜歡吃狗食。 – 2011-05-03 14:24:36