4

面接の1つの問題の答えを探してみました。しかし、解決策はありませんでした。誰でもこの質問で私を助けることができます. 問題の説明は次のとおりです。

2 人の名前 A と B が与えられました。どちらも FB に存在することがわかっています。それらの間に接続があるかどうかを確認する必要があります。接続が存在する場合は、接続の正確なパスを伝える必要があります。接続性とは、 B が A の友人である C の友人になる可能性があることを意味します。このように、A と B の間に接続があり、パスは A -> B-> C になります。

4

1 に答える 1

3

双方向検索を使用できます。

本旨:

  1. Aグループ = {A}、Bグループ = {B}。

  2. while intersect(AGroup,BGroup) = 空のセット:

    2.1 まだ展開していない AGroup のすべての人を展開し、結果を AGroup に挿入します。

    2.2 まだ展開していない BGroup のすべての人物を展開し、結果の BGroup を挿入します。

    2.3 AGroup と BGroup が変更されていない場合は、「A と B は接続されていません」を返します。

  3. S は AGroup と BGroup の両方の人を表します。

これで、A から S へのパスと、B から S へのパスができました。

A->...->S->...->B を返します。

于 2012-07-27T07:03:44.177 に答える