graph確定是否有迴圈

2021-08-01 15:41:34 字數 1116 閱讀 8098

演算法:先獲取點的列表,索引對應點的順序,值對應能通向的節點的列表——>[ [1,2,3] , [2,4] , [3,4] , [ ] , [ ] ]

給每個點標上標籤,是否當前路線"now「 和 該節點對應的鄰節點,用列表與字典表示——> [ for neighbours in adj]

[,,遍歷每個節點:建立乙個方法has_cycle對每個節點進行遞迴運算,判斷該節點的visited是否為當前,若不是則對該節點的visited設定為當前,然後對該節點的鄰節點進行遞迴,如果該鄰節點是當前,則已經完成迴圈(因為當前都是在這一次遍歷建立的),如果不是,繼續遞迴該鄰節點的鄰節點,當走到deadend時候,將該節點的當前設定為false。返回上乙個遞迴,獲取上乙個遞迴的節點的下乙個鄰節點,重複判斷。

#uses python3

import sys

def has_cycle(node,nodes):

if node["visited"] == 'now':

return 1

node["visited"]='now'

for neighbour_index in node["neighbours"]:

if has_cycle(nodes[neighbour_index],nodes):

return 1

node["visited"]=false

return 0

def acyclic(adj):

return 0

if __name__ == '__main__':

input = sys.stdin.read()

data = list(map(int, input.split()))

n, m = data[0:2]

data = data[2:]

edges = list(zip(data[0:(2 * m):2], data[1:(2 * m):2]))

adj = [ for _ in range(n)]

for (a, b) in edges:

nodes = list((for neighbours in adj))

print(acyclic(adj))

windows c獲取檔案md5值確定是否改變

在windows下做一些小工具的時候,希望做到根據配置檔案來對pc做一些配置下發的操作 例如改主機名改網路等 這就需要做到每個一段時間檢測配置檔案,並執行相應配置,但是當我們配置檔案沒有修改時,就不需要做配置了,因此需要對配置檔案進行md5檢測判斷檔案是否有改變 此處是獲取檔案的md5值,檔名在ne...

js實現根據中的文字值確定是否輸出該行

現在有個需求,對於乙個頁面上的中的文字,對於中class相同的一列進行範圍篩選,是為特定的日期格式和09 29 02 19 40的相隔時間為多少。思想就是找到中的值,寫了乙個getelementsbyclassname n 的方法,根據正規表示式跟文字值判斷,然後寫乙個兩位分隔的方法getnum n...

用vbs實現確定是否安裝了某個特定的補丁

問 您好,指令碼專家!如何使用指令碼來確定是否安裝了某個特定的補丁?gm 答 您好,gm。您知道,不久以前這個問題可能被我們 不小心 扔進了廢紙簍並且假裝從未看到。為什麼?嗯,以前的時候,我們獲得關於補丁 快速修復和其他更新的資訊的唯一方法就是使用 wmi 類 win32 quickfixengin...