基于以下逻辑实现父子关系逻辑



必须实现以下逻辑,我无法继续进行

逻辑:

A has a child B 
B has a child C 
C has a child D 
D doesn’t have any child 
E doesn’t have any child

在选择任何父母时,应在列表中添加该特定选择的父母的潜在孩子的列表。

对于上述情况,所需的输出如下所示,

在选择父母A时,子女名单包含B,C,D和E.

在选择父b时,子女列表包含C,D和E。A不能成为B的孩子,因为B已经是A的孩子,因此不会列出A。

在选择父c时,儿童列表包含D和E。b不能是C的孩子,因为C是B的孩子,A不能成为C的孩子,因为B是溪流A的孩子。因此A和B不会是列出。

在选择父d,儿童列表时。C不能是D的孩子,因为D已经是C的孩子,B不能成为D的孩子,因为B是C的孩子,A不能是D的孩子,因为AChild B.因此A,B和C不会列出。

在选择e时,儿童列表包含a,b,c和d。

请帮助我实施此逻辑。

假设每个节点最多都有一个父,以下逻辑应完成工作:

var allNodes = [A, B, C, D, E]
function onNodeSelect(node) {
  var possibleChildren = allNodes
  possibleChildren.remove(node)
  var currentNode = node
  while (currentNode.hasParent) {
    currentNode = node.parent
    possibleChildren.remove(currentNode)
  }
  return possibleChildren
}

最新更新