Delphi 2009的通用链接列表
我在找泛型。收藏,并注意到并没有链接列表。当然它们制作起来很简单,但我觉得奇怪的是没有一个(或者我只是错过了)。与新的现代数据结构相比,链表是否已经过时,或者是否需要通用链表?有人知道吗?在过去,几乎所有严肃的软件都包含链表或树 我很少使用链表,但树是另一回事 随着动态数组的引入,对链表的需求就没有那么大了。但我可以想象,如果您的数据结构经常更改(添加+删除),您会想要使用它Delphi 2009的通用链接列表,delphi,generics,data-structures,delphi-2009,linked-list,Delphi,Generics,Data Structures,Delphi 2009,Linked List,我在找泛型。收藏,并注意到并没有链接列表。当然它们制作起来很简单,但我觉得奇怪的是没有一个(或者我只是错过了)。与新的现代数据结构相比,链表是否已经过时,或者是否需要通用链表?有人知道吗?在过去,几乎所有严肃的软件都包含链表或树 我很少使用链表,但树是另一回事 随着动态数组的引入,对链表的需求就没有那么大了。但我可以想象,如果您的数据结构经常更改(添加+删除),您会想要使用它 您可以使用容器类和元素记录轻松创建通用链表。我不知道现有Delphi RTL中有任何通用链表 但是,它们作为数据结构仍然
您可以使用容器类和元素记录轻松创建通用链表。我不知道现有Delphi RTL中有任何通用链表 但是,它们作为数据结构仍然非常有用。尤其是如果在链表中包含变量,如b-树或二叉树。与常规列表不同,链表可以展开、编辑或修改,而无需在内存中移动数据。它们非常容易版本化,并且在纯功能代码中工作良好,不允许对现有数据进行变异。因此,它仍然是一种非常有用的数据结构。您知道它的功能吗
我认为该单元的
TLinkedList
正是您想要的 这不就是tStringList的作用吗
(闪避)
实际上,任何通用tList都可以作为一个链表工作,并提供所需的大部分功能。从我们的祖先那里传下来的一种古老技术,即在每个记录中存储指向内存的指针,并导航到该记录,这种技术很容易被动态数组所取代,并且可以做一些更一般的事情。当插入到TList时,需要对数组中其后的所有内容进行内存移动。一个链表只需要改变一个指针。没错,对于大的链表来说,这样会更有效,而且写起来也不难。ulrichb有最好的答案,那里的实现正是您所要求的。