-2

これが私が解決しようとしていることです。私は次のような一連の数字を持っています

    1 -> 2
    2 -> 3
    3 -> 4
    4 -> 2
    2 -> 1

これらの数値がグラフ上の点であるかどうかを証明するプログラムを作成する必要があります。これらの数値は、ある種のループを形成します。上記の例では、1-> 2-> 3->4->2がループを形成します。

次の例では、ループはありません。

    1 -> 2
    2 -> 3
    3 -> 4
    3 -> 5

これがどのように重複しているのか理解できません。私の質問が明確でない場合は申し訳ありません。私はそれを説明するために自分のレベルを最善にしようとしています。ポイント/番号/ノードのセットがあります。彼らはペアであり、また彼らは方向性を持っています。たとえば、数字のペアは1-> 2 2-> 3 1-> 2 3-> 4 4-> 2 2-> 1 3-> 4

これらの個々のノードを上から下に接続すると、以下のようなリンクリストが表示されます1-> 2-> 3-> 1-> 2-> 3-> 4-> 2-> 1-> 3-> 4

私はこの数字のセットで繰り返されるパターンを探していません。1-> 2->3->1のような閉ループを見つけようとするのはループです。2-> 3->1->2はループです。3-> 1-> 2-> 3、2-> 3-> 4-> 2、3-> 4-> 2-> 1-> 3などこのwikiリンクには、1_である1つのループがあります。6-> 3-> 1 http://upload.wikimedia.org/wikipedia/commons/thumb/d/d7/Functional_graph.svg/240px-Functional_graph.svg.png

これで質問が明確になることを願っています!

4

1 に答える 1

2

非常に簡単な方法は、2 つの数値をキーと値のペアとして Hashtable に追加することです。

キーが既に存在するというエラーがスローされるか、ContainsValue 条件が true の状況になると、サイクルが見つかりました。

于 2013-02-20T04:32:48.107 に答える