2009-06-12 100 views
4

我在尋找Generics.Collections並注意到沒有鏈接列表。當然,他們製作起來很簡單,但我認爲這很奇怪,沒有一個(或者我錯過了它)。與新的現代數據結構相比,鏈接列表是否已經過時,還是需要一個通用的通用鏈接列表?有人知道嗎?德爾福2009通用鏈接列表

回答

2

在過去,幾乎所有嚴重的軟件都包含鏈接列表或樹。

我沒有使用鏈表很多,但樹是另一回事。

隨着動態數組的引入,對鏈接列表的需求不再那麼多。但我可以想象,如果您的數據結構經常更改(添加+刪除),您想使用它。

您可以使用容器類和元素記錄輕鬆地自己創建通用鏈接列表。

1

我不知道現有的Delphi RTL中的任何通用鏈表。

然而,它們仍然是非常有用的數據結構。特別是如果您在鏈接列表(如B樹或二叉樹)中包含變體。與常規列表不同,可以擴展,編輯或修改鏈接列表,而無需在內存中移動數據。它們非常容易版本化,並且在純功能代碼中運行良好,不允許變更現有數據。所以它仍然是一個非常有用的數據結構。

0

這不就是tStringList的用途嗎?

(閃避)

其實,任何一般TLIST正常工作作爲一個鏈表,並提供大部分所需的功能。古老的技術從我們的祖先傳下來,在每條記錄中存儲一個指向內存的指針,並且導航到那個很容易被動態數組替換,並且更加通用。

+3

當插入到TList中時,它需要將其後的所有內容移動到數組中。鏈接列表只需要更改指針。 – 2009-06-12 16:36:18