2010-07-28 116 views
0

這更多的是一種邏輯思維的問題,而不是編碼。 我已經有一些工作代碼塊 - 一個telnet到設備,一個分析命令的結果,一個填充字典等等使用Python/Pexpect的抓取網絡

現在讓我們說我想分析一個未知節點的網絡, b,C等(但我只知道1)

我給我的代碼塊節點。結果是,包括B,C的表。我保存在一個字典

然後我想用這第一項(B)爲目標,看看它可以看到。可能是d,E等,並添加這些(如果有的話)的詞典

然後做同樣在這個新填充的字典中的下一個節點上。最後的結果將是在所有節點都只有一次訪問,並看到所有的設備都記錄在這個(或其他)字典。

但我無法弄清楚如何保持重讀字典因爲它的增長,我無法弄清楚如何避免在設備尋找不止一次。

我理解,這是更清晰的對我比我所解釋,道歉,如果這是令人困惑

回答

2

您正在看的圖形算法,特別是DFSBFS。你對實施細則明確要求,或者更普遍看好的算法?

遞歸會是這樣的一個非常簡潔的方式。

seen = {} 
def DFS(node): 
    for neighbour in node.neighbours(): 
     if neighbour not in seen: 
      seen[ neighbour ] = some_info_about_neighbour 
      DFS(neighbour)