双方向リスト


理恵  2003-02-10 18:00:03  No: 2868

はじめまして

いま、Delphi6でプログラムを作成している初心者の理恵です。

早速質問何ですけど、
ツリー構造のデータをTList型で作成しています。

でも、双方向リスト?みたいな形で、
作成して、データをツリー上にするのがリスト型を扱う場合一般的だと
聞いたのですが、やり方、考え方がさっぱりわかりません。

双方向リストを作成する際には、どうやるのかとか、こんな形でやるんだよ
みたいな、サンプルが載っている、URLをご存知のかた、もしくは、
やり方等をご存知の方おりましたら、教えてください。

宜しくお願いします。


みその  2003-02-11 05:41:51  No: 2869

TreeListViewを使いたいんでしょうか?
いろいろな使い方がありますけど、双方向リストとは
どのようなものをイメージされてますか?


たかみちえ  URL  2003-02-11 08:39:37  No: 2870

双方向のリスト…というと、真っ先にTHashStringListあたりを思い浮かべますけど…。
ツリー状にして管理する必然性がないのなら、そっちのほうがいいと思います。
  扱い方はTStringListなどと同じで、
a=b
という行があったら、
Values[Names['a']] で、bが得られるといった感じのものです。
Objectsプロパティもくっついてますから、拡張情報をいくらでもつけることができます。
(もちろんObjectsの中身のオブジェクトの分、重くなりますけど)

  あとは、わたしはちょくちょくTMemIniFileに、ありえないファイルを指定して、
データ管理に使ってますけど、これはだめでしょうか?
うちの"おんぷ村倉庫">"コンポーネント">"TCmdInfoクラス"にて、
そういう使い方をしています。


にしの  2003-02-11 08:48:33  No: 2871

ちなみに、双方向リストはツリーではありませんよ。
数珠状のデータ配列になります。

[リスト00]
[前:なし]
[次:01]

[リスト01]
[前:00]
[次:02]

[リスト02]
[前:01]
[次:03]

[リスト03]
[前:02]
[次:なし]

こういうデータリストを双方向リストと言います。
それぞれ、どういう順序でメモリ上に並んでいても、ある1カ所がわかれば、そこから両端を導く事ができ、そのデータの順序がわかります。
ただし、2つ隣のデータを知るには、順番にたどっていく必要があります。

もしかして、ツリー構造に持ちたいというのはBツリーなどのことでしょうか。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加