今天寫clone graph的的dfs實現方法,這部分採用遞迴來實現
dfs(dpeth-first search)
顧名思義,就是深度搜尋,一條路走到黑,再選新的路。
遞迴寫法的dfs偽**如下:
input: a graph g and a root v of g
procedure
dfs(g,v):
label v as discovered
for all edges from v to w in g.adjacentedges(v) do
if vertex w is
not labeled as discovered then
recursively call dfs(g,w)
用dfs遞迴實現clonegraph**為:
public undirectedgraphnode clonegraph(undirectedgraphnode node)
//採用hashmap來儲存複製圖
//新建乙個節點,這裡不可以直接引用
undirectedgraphnode head = new undirectedgraphnode(node.label);
//複製第乙個跟節點
//dfs遞迴實現複製
return head;
}public
void
if(node == null)
for(undirectedgraphnode aneighbor : node.neighbors)則因0已存在導致直接無法複製鄰居節點
}//與bfs區分開要,如果bfs使用node則是將所有節點的鄰居都複製給第乙個head
//這裡因為是遞迴每次傳入的都是應當前的主節點而不是他的鄰居
}}
CDN總結之二
cdn中的三個主要角色為 cdn提供者 內容提供者以及使用者。內容提供者在cdn提供者那兒進行註冊而使用服務,將其內容儲存到cdn提供者分布式的 伺服器上。內容可能是以提前準備的方式或者基於使用者需求的方式儲存在 伺服器上,以響應使用者的訪問。使用者的請求將會被最近的 伺服器響應。cdn提供者負責進...
JS學習總結之二
正規表示式 用來定義一些字串的規則,計算機可以根據正規表示式來檢查字串是否合乎規則,將合乎規則的提取出來。用typeof檢查其型別為object。1 建立正規表示式物件 1 var 變數 new regexp 正規表示式 匹配模式 其中匹配模式有兩種 i 忽略大小寫 g 全域性匹配模式 2 var ...
小型專案總結之二
這個小型專案有點曲折,始於2006年,當時由於沒有總結經驗,所以後來又做了n個類似的專案,鑑於此,記下總結。系統硬體架構 為了使本系統獲得更好的安全性 擴充套件性和更高的執行效能,我們建議整個系統採取分布式部署的方案,該方案系統架構示意圖如下 具體部署如下 原理圖如下 將承載關鍵業務邏輯的應用程式伺...