Hi, I have implementation graph as a dictionary.
I done finding a path between two nodes, but I don't know how find all
paths between two nodes. Anybody help or give me an advice?
My code:
def addEdge(a, b) @graph[a] << b @graph[b] << a
end
def searchPath(a, b, result)
result << a
if a == b
return result
end @graph[a].each do |v|
if ! result.include?(v)
return searchPath(v, b, result)
end
end
end
def addEdge(a, b) @graph[a] << b @graph[b] << a
end
def searchPath(a, b, result,&bl)
result = result+[a]
bl.call(result) if a == b @graph[a].each do |v|
searchPath(v, b, result,&bl) if ! result.include?(v)
end
end
I want to get something like below:
[[a,c,b],[a,e,b],[a,e,f,b]]
So :
def searchPath(a, b, result,lr)
result = result+[a]
lr << result if a == b @graph[a].each do |v|
searchPath(v, b, result,lr) if ! result.include?(v)
end
end
I want to get something like below:
[[a,c,b],[a,e,b],[a,e,f,b]]
So :
def searchPath(a, b, result,lr)
result = result+[a]
lr << result if a == b @graph[a].each do |v|
searchPath(v, b, result,lr) if ! result.include?(v)
end
end