예제 #1
0
def shortest_path(source, target, graph):
	def target_check(u, v):
		return v==target
	parent, level = BFS(graph = graph, root = source, check_terminate = target_check)
	print("Parent: ", parent)
	print("Level: ",level)
	path = [target]
	cur_country = target
	if parent.get(cur_country) is None:
		return []
	while parent[cur_country] is not None:
		parent_country = parent[cur_country]
		path.append(parent_country)
		cur_country = parent_country
	path.reverse()
	return path