【发布时间】:2020-10-08 08:37:23
【问题描述】:
我尝试使用 BFS 方法遍历以下员工数组。
array = [
["alice", "bob", "joseph"],
["bob", "tom", "richard"],
["richard", "michelle", "amy"],
["joseph", "elaine", "albert"],
["albert", "colin", "liam"]
]
此数组未排序,但它代表公司中的经理树。 对于数组中的每个项目,索引 0 是经理,而索引 1 和 2 是经理的下属。 基本上,它是一棵看起来像这样的树:
alice
/ \
bob joseph
/ \ / \
tom richard elaine albert
/ \ / \
michelle amy colin liam
我们的输出应该完全匹配:
需要的确切输出:
alice
bob joseph
tom richard elaine albert
michelle amy colin liam
我试过了,但它只显示节点。
array = [
["alice", "bob", "joseph"],
["bob", "tom", "richard"],
["richard", "michelle", "amy"],
["joseph", "elaine", "albert"],
["albert", "colin", "liam"]
]
new_array = Array.new
def treverse(array,new_array)
final_array = Array.new
arr = array.shift
i = true
arr.each do |b|
unless new_array.include?(b)
new_array.push(b)
end
array.each do |c|
if c.include?(b)
treverse(array, new_array)
end
end
end
return
end
treverse(array,new_array)
new_array.each do |p|
puts p
end
【问题讨论】:
标签: ruby data-structures tree traversal tree-traversal