NORSYS SOFTWARE © 2012 | NETICA API | C   VERSION   5.04  |
void GetRelatedNodesMult_bn ( | nodelist_bn* related_nodes, const char* relation, const nodelist_bn* nodes ) |
Finds all the Nodes that bear the relationship relation with any member of nodes and puts them in related_nodes.
Otherwise it works the same as GetRelatedNodes_bn; see that function for more information.
Note: It is okay if related_nodes = nodes (i.e., the list gets modified in-place).
On entry, nodes must not contain duplicates (but related_nodes may).
Tip: A handy and efficient way to remove the duplicates from any node list is to call this function with the node list as related_nodes, an empty list for nodes, and "parents,union" as the relation.
Version:
See also:
GetRelatedNodes_bn | Same, but for a single node | |
IsNodeRelated_bn | Tests relationship of two nodes | |
GetNetNodes_bn | Get all nodes in the net |
Example:
//find all the parents of all the children of a node nodelist_bn* children = GetNodeChildren_bn (node); nodelist_bn* parentsOfChildren = NewNodeList2_bn (0, GetNodeNet_bn (node)); GetRelatedNodesMult_bn (parentsOfChildren, "parents", children);Example 2:
//find all the descendants of the children of a node, excluding the children themselves. //I.e., find grand-children, great-grandchildren, great-great-grandchildren, ... nodelist_bn* children = GetNodeChildren_bn (node); nodelist_bn* descendants = NewNodeList2_bn (0, GetNodeNet_bn (node)); GetRelatedNodesMult_bn (descendants, "descendants,exclude_self", children);