0

これは、コーディングというよりも論理的な考え方の問題です。私はすでにいくつかの動作するコードブロックを持っています-デバイスにtelnetするもの、コマンドの結果を解析するもの、辞書に入力するものなど。

ここで、未知のノード、a、b、cなどを含むネットワークを分析したいとします(ただし、1つしか知りません)

コードブロックノードにaを与えます。結果はb、cを含む表です。それを辞書に保存します

次に、その最初のエントリ(b)をターゲットとして使用し、何が表示されるかを確認します。おそらくd、eなどそしてそれら(もしあれば)をdictに追加します

次に、この新しく入力された辞書の次のノードで同じことを行います。最終的な出力は、すべてのノードが1回だけアクセスされ、表示されたすべてのデバイスがこの(または別の)ディクショナリに記録されることです。

しかし、私はそれが成長するにつれて辞書を読み直し続ける方法を理解することができず、デバイスを何度も見ないようにする方法を理解することはできません。

これは私が説明したよりも明確であると理解しています。混乱している場合はお詫びします

4

1 に答える 1

2

グラフアルゴリズム、特にDFSまたはBFSを見ています。実装の詳細について具体的に質問していますか、それともより一般的にアルゴリズムについて質問していますか?

再帰は、これを行うための非常に巧妙な方法です。

seen = {}
def DFS( node ):
    for neighbour in node.neighbours():
        if neighbour not in seen:
            seen[ neighbour ] = some_info_about_neighbour
            DFS( neighbour )
于 2010-07-28T21:05:49.657 に答える