我撰寫了遞回代碼來獲取 DFS 遍歷中采用的路徑,但我想將輸出轉換為字串變數。遞回不是我的強項,所以我很難弄清楚要回傳的內容。這是我為演算法撰寫的代碼
adj_lst = [None, [3, 4], [3], [1, 2], [1]]
size = len(adj_lst)
visited = [False] * size
def dfs(starting_node, a_lst, output):
visited[starting_node] = True
output = str(starting_node)
for vertex in a_lst[starting_node]:
if visited[vertex] == False:
visited[vertex] = True
dfs(vertex, a_lst, output)
return output
print(dfs(1,adj_lst,''))
我給出了一個無向圖的鄰接串列,其中索引對應于父節點,而里面的串列包含子節點。每次訪問一個節點時,我都會將該節點添加到output變數中并在最后回傳它。
在這種情況下,所需的輸出是“1 3 2 4”,但我得到的是“1”
uj5u.com熱心網友回復:
adj_lst = [None, [3, 4], [3], [1, 2], [1]]
size = len(adj_lst)
visited = [False] * size
def dfs(starting_node, a_lst, output):
visited[starting_node] = True
output = str(starting_node)
for vertex in a_lst[starting_node]:
if visited[vertex] == False:
visited[vertex] = True
output = dfs(vertex, a_lst, output)
return output
print(dfs(1,adj_lst,''))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/526276.html
上一篇:Javascript遞回示例
