隣接ツリーの構築と検索に関するインタビューの質問ですが、以前にそれらを使用したことがないため、どこから始めればよいかわかりません。
次のようなデータを含むファイルがあります。
2 13556 225 235
225 2212 226
2212 8888 2213
8888 144115 72629 141336 8889 146090 129948 167357
144115 160496 163089 144114 144116
...
次のようにフォーマットされています。
<parent node> <child node> [ <child node> [ …] ]
すべてのエッジの長さは 1 です。
次に、2 つのノード間の最短パスを計算する必要があります (2 つのノードは質問で指定されています)。次に、予想される複雑さを big-O 表記で提供する必要があります。
後者はおそらくごまかすことができますが、今まで聞いたことがなく、ウィキペディアは検索機能を大きなOに分解する方法を理解するのにあまり役に立ちませんが、後で心配します. (誰かが共有できる良いリンクを持っていない限り)。
私の関心事は、このデータをモデル化し、最短経路を検索することです。私が言ったように、私は以前にこの種の構造で働いたことがないので、どこから始めればいいのか途方に暮れています. ここで隣接リストに関する別の質問を見つけましたが、要点を完全に見逃していない限り、私が探しているものではないようです。私には、その質問で使用されている構造を満たすために入力データを再編成する必要があるように思えますが、ファイルからデータを読み取っているので、すべてのノードとノードのリストをトラバースする必要があると思いますすでに親を入力しているかどうかを判断しますが、それには長い時間がかかる可能性があります。また、その構造を使用して bfs 検索を作成する方法もわかりません。
そこには検索の例がたくさんあるので、その部分を整理できる可能性がありますが、データファイルからのロードに適し、bfs 検索に適したデータモデルを開始するための助けがあれば (または、そこにあるより良い検索オプション、私に教えてください)、非常に役立ちます。