我正在寻找Generics.Collections并注意到没有链表。当然它们很容易制作,但我觉得奇怪的是没有一个(或者我只是错过了它)。与新的现代数据结构相比,链接列表是否过时,还是需要通用的通用链表?有人知道吗?
答案 0 :(得分:11)
您知道DeHL吗?
我认为来自DeHL.Collections.LinkedList.pas单元的TLinkedList<T>
正是您正在寻找的。
答案 1 :(得分:2)
在过去,几乎任何一个严肃的软件都包含链表或树。
我没有使用很多链接列表,但树木是另一个故事。
随着动态数组的引入,对链表的需求并不多。但是我可以想象,如果你的数据结构经常更改(添加+删除),你想要使用它。
您可以使用容器类和元素记录轻松自己创建通用链接列表。
答案 2 :(得分:1)
我不知道现有Delphi RTL中的任何通用链表。
然而,它们作为数据结构仍然非常有用。特别是如果在链表上包含变体,例如b树或二叉树。与常规列表不同,可以在不在内存中移动数据的情况下扩展,编辑或修改链接列表。它们非常易于版本化,并且在纯函数代码中运行良好,不允许改变现有数据。所以它仍然是一个非常有用的数据结构。
答案 3 :(得分:0)
这不是tStringList的用途吗?
(回避)
实际上,任何通用tList都可以作为链表工作,并提供所需的大部分功能。古老的技术从我们的祖先传下来,在每个记录中存储指向内存的指针,导航到那个已经很容易被动态数组和做事取代......更通用。