Generics.Collectionsを探していて、リンクされたリストがないことがわかりました。確かに彼らは作るのが簡単ですが、私はそれが奇妙だったと思った(または私はそれを逃した)。新しい近代的なデータ構造と比較するとリンクされたリストは時代遅れですか?一般的な一般リンクリストが必要ですか?誰か知っていますか?Delphi 2009の汎用リンクリスト
4
A
答えて
11
あなたはDeHLを知っていますか?
DeHL.Collections.LinkedList.pasユニットのTLinkedList<T>
は、あなたが探しているものとまったく同じだと思います。
2
昔は、深刻なソフトウェアのほとんどすべてにリンクリストやツリーが含まれていました。
リンクリストを使用していませんが、ツリーは別の話です。
ダイナミックアレイの導入では、リンクリストの必要性はあまりありません。しかし、あなたのデータ構造が頻繁に変更された場合(add + delete)、それを使用したいと思うかもしれません。
コンテナクラスと要素のレコードを使用して、簡単に汎用リンクリストを作成できます。
1
既存のDelphi RTLの一般的なリンクリストはわかりません。
これらはまだデータ構造として非常に便利です。特に、bツリーやバイナリツリーなどのリンクされたリストにバリアントを含める場合。通常のリストとは異なり、リンクされたリストは、メモリ内のデータを移動することなく、展開、編集、または変更することができます。それらは非常に簡単にバージョンアップすることができ、既存のデータを変更することができない純粋に機能的なコードでうまく機能します。したがって、それは依然として非常に有用なデータ構造です。
0
tStringListの対象はありませんか?
を(ダッキング)
は実際には、任意の汎用TListのは、リンクされたリストとして正常に動作し、必要な機能のほとんどを提供します。古典的なテクニックは、各レコードのポインタをメモリに格納し、それをナビゲートする先祖から渡され、ダイナミックな配列と簡単に置き換えられました。もっと一般的には。
TListに挿入するときは、配列内のすべてのものをメモリ移動する必要があります。リンクされたリストはポインタを変更するだけです。 –
本当に大きなリストのほうがはるかに効率的で、実際に書くのはそれほど難しくありません。 ulrichbには最高の答えがあります。実装には、あなたが求めたものがあります。 – skamradt