地理的な関係を表現および取得するための効率的な方法を探しています。地区->州->米国。これは、あらゆるレベルの階層に対応する必要があります。地区->地域->州->大きな地域(東/西/南/北)->米国。
私の要件は
- 私は主に最低レベルで運用しているので、すべてを高速化することが最優先事項です。一定の時間が望ましい。
- 次に、州レベルで地区データを結合するなどの集計を簡単に実行したいと思います(したがって、ノードのすべての子を取得します)。これは2番目の基準です。
- レベルでの順序は重要ではありません-例えば。ノースカロライナ州の場合、最初にローリーとフェイエットビルのどちらを取得してもかまいません。
ご想像のとおり、ツリーデータ構造は論理的に問題に役立ちます。しかし、私はすべての葉を効率的に得る方法を見つけることができませんでした。O(log n)時間でノードがリーフであるかどうかを確認できますが、各ノードでそのことを確認しています。
私はB、B +の木を見てきましたが、私が理解していなかったのは、それらが昇順や降順などの順序を使用して順序を維持していることです。
私の直感では、これには効率的な解決策があるはずです。なぜなら、Windowsやその他のファイルシステムがこれを行うからです。[ファイル]->[フォルダ]->[大きなフォルダ]->[C]->[マイコンピュータ]。また、この種の計算は、データマイニングで実行する必要があります。たとえば、クラスタリングの場合です(この種の何かを読んだことを覚えています)
この方向へのリードをいただければ幸いです。
ありがとう