Delphi 2009的通用链接列表

时间:2009-06-12 04:02:59

标签: delphi generics data-structures delphi-2009 linked-list

我正在寻找Generics.Collections并注意到没有链表。当然它们很容易制作,但我觉得奇怪的是没有一个(或者我只是错过了它)。与新的现代数据结构相比,链接列表是否过时,还是需要通用的通用链表?有人知道吗?

4 个答案:

答案 0 :(得分:11)

您知道DeHL吗?

我认为来自DeHL.Collections.LinkedList.pas单元的TLinkedList<T>正是您正在寻找的。

答案 1 :(得分:2)

在过去,几乎任何一个严肃的软件都包含链表或树。

我没有使用很多链接列表,但树木是另一个故事。

随着动态数组的引入,对链表的需求并不多。但是我可以想象,如果你的数据结构经常更改(添加+删除),你想要使用它。

您可以使用容器类和元素记录轻松自己创建通用链接列表。

答案 2 :(得分:1)

我不知道现有Delphi RTL中的任何通用链表。

然而,它们作为数据结构仍然非常有用。特别是如果在链表上包含变体,例如b树或二叉树。与常规列表不同,可以在不在内存中移动数据的情况下扩展,编辑或修改链接列表。它们非常易于版本化,并且在纯函数代码中运行良好,不允许改变现有数据。所以它仍然是一个非常有用的数据结构。

答案 3 :(得分:0)

这不是tStringList的用途吗?

(回避)

实际上,任何通用tList都可以作为链表工作,并提供所需的大部分功能。古老的技术从我们的祖先传下来,在每个记录中存储指向内存的指针,导航到那个已经很容易被动态数组和做事取代......更通用。