devxlogo

GetNodeRelationship – Check if two nodes are relatives

GetNodeRelationship – Check if two nodes are relatives

' Returns a value >0 if Node1 is a parent (or grandparent) of Node2' Returns a value <0 if Node1 is a child (or grandchild) of Node2'   in both cases the number reflects the number of levels'   between the two nodes' Returns 0 if the two Nodes are the same or'   if they belong to different subtreesFunction GetNodeRelationship(ByVal Node1 As Node, _    ByVal Node2 As Node) As Integer        If Node1 Is Node2 Then        ' this is the simplest case        Exit Function    ElseIf Len(Node1.FullPath) > Len(Node2.FullPath) Then        ' if the two nodes belong to the same subtree, then        ' Node1 is a (grand)child of Node2        If InStr(Node1.FullPath, Node2.FullPath) = 1 Then            ' do the loop only if the two nodes appear to            ' belong to the same subtree            ' check that the relationship really exists            Do Until (Node1.Parent Is Nothing)                Set Node1 = Node1.Parent                GetNodeRelationship = GetNodeRelationship + 1                If Node1 Is Node2 Then Exit Function            Loop        End If    Else        ' if the two nodes belong to the same subtree, then        ' Node1 is a (grand)parent of Node2        If InStr(Node2.FullPath, Node1.FullPath) = 1 Then            ' do the loop only if the two nodes appear to            ' belong to the same subtree            ' check that the relationship really exists            Do Until (Node2.Parent Is Nothing)                Set Node2 = Node2.Parent                GetNodeRelationship = GetNodeRelationship - 1                If Node1 Is Node2 Then Exit Function            Loop        End If    End If        ' Nodes belong to different subtrees    GetNodeRelationship = 0    End Function

See also  Why ChatGPT Is So Important Today
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist