2009-06-12 10 views
4

Generics.Collectionsを探していて、リンクされたリストがないことがわかりました。確かに彼らは作るのが簡単ですが、私はそれが奇妙だったと思った(または私はそれを逃した)。新しい近代的なデータ構造と比較するとリンクされたリストは時代遅れですか?一般的な一般リンクリストが必要ですか?誰か知っていますか?Delphi 2009の汎用リンクリスト

答えて

2

昔は、深刻なソフトウェアのほとんどすべてにリンクリストやツリーが含まれていました。

リンクリストを使用していませんが、ツリーは別の話です。

ダイナミックアレイの導入では、リンクリストの必要性はあまりありません。しかし、あなたのデータ構造が頻繁に変更された場合(add + delete)、それを使用したいと思うかもしれません。

コンテナクラスと要素のレコードを使用して、簡単に汎用リンクリストを作成できます。

1

既存のDelphi RTLの一般的なリンクリストはわかりません。

これらはまだデータ構造として非常に便利です。特に、bツリーやバイナリツリーなどのリンクされたリストにバリアントを含める場合。通常のリストとは異なり、リンクされたリストは、メモリ内のデータを移動することなく、展開、編集、または変更することができます。それらは非常に簡単にバージョンアップすることができ、既存のデータを変更することができない純粋に機能的なコードでうまく機能します。したがって、それは依然として非常に有用なデータ構造です。

0

tStringListの対象はありませんか?

を(ダッキング)

は実際には、任意の汎用TListのは、リンクされたリストとして正常に動作し、必要な機能のほとんどを提供します。古典的なテクニックは、各レコードのポインタをメモリに格納し、それをナビゲートする先祖から渡され、ダイナミックな配列と簡単に置き換えられました。もっと一般的には。

+3

TListに挿入するときは、配列内のすべてのものをメモリ移動する必要があります。リンクされたリストはポインタを変更するだけです。 –

+0

本当に大きなリストのほうがはるかに効率的で、実際に書くのはそれほど難しくありません。 ulrichbには最高の答えがあります。実装には、あなたが求めたものがあります。 – skamradt