Generics.Collectionsを調べていたところ、リンクリストがないことに気づきました。確かに簡単に作れますが、1つもなかったのは変だと思いました(または見逃しただけです)。リンクリストは、新しい最新のデータ構造と比較すると時代遅れですか、それとも一般的な汎用リンクリストが必要ですか?誰か知っていますか?
4 に答える
DeHLを知っていますか?
DeHL.Collections.LinkedList.pasTLinkedList<T>
ユニットからのものがまさにあなたが探しているものだ と思います。
昔は、ほとんどすべての本格的なソフトウェアにリンクリストやツリーが含まれていました。
私はリンクリストをあまり使用していませんが、木は別の話です。
動的配列の導入により、リンクリストはそれほど必要なくなりました。しかし、データ構造が頻繁に変更される場合(追加+削除)に使用したいと思うことは想像できます。
コンテナクラスと要素のレコードを使用して、ジェネリックリンクリストを自分で簡単に作成できます。
既存のDelphiRTLにある一般的なリンクリストを知りません。
ただし、データ構造としては依然として非常に便利です。特に、bツリーやバイナリツリーなどのリンクリストにバリアントを含める場合。通常のリストとは異なり、リンクリストは、メモリ内のデータを移動せずに拡張、編集、または変更できます。これらはバージョン管理が非常に簡単で、既存のデータを変更できない純粋に機能的なコードでうまく機能します。したがって、それでも非常に便利なデータ構造です。
それがtStringListの目的ではありませんか?
(ダッキング)
実際、一般的なtListはリンクリストとして正常に機能し、必要な機能のほとんどを提供します。各レコードにメモリへのポインタを格納し、そこに移動するという古代の手法は、動的配列に簡単に置き換えられ、より一般的に実行されます。