如何确定树节点是否是当前节点的间接后代?

时间:2019-01-16 09:47:03

标签: node.js tree

我有一个树状结构。每个节点都有以下字段:

  • _id
  • nestingLevel
  • oldersAnscestorId
  • ...其他值

如果给我一个节点 A 和一个节点 B ,其中B.nestingLevel > A.nestingLevel如何找出 B A 的后代?

我当时正在考虑使用uuid版本3,该版本使用命名空间来以某种方式找到相关性,但目前尚不确定它可以如何帮助我。 另一个想法是使用某种动态生成的键,该键可以接受更深的嵌套节点的nestingLevel_id之类的不同值,并且可能还需要其他一些来找出它们的相关性。

更新

我认为遍历不是一个好的选择,因为我在微服务体系结构中拥有遍历,遍历将意味着与另一个服务进行通信。将树移动到另一服务也不是一种选择,因为我必须使用当前服务来查询数据库

1 个答案:

答案 0 :(得分:0)

我将添加一个数组,该数组存储节点中所有父节点的某些唯一哈希,然后检查是否使用它。当然,这可以优化。