Recursive Function

Private Function getAllParentsList(ByVal node As Node, ByVal subset As ArrayList)

        ' integer variable for FOR loops
        Dim i As Integer = 0
        Dim j As Integer = 0
        ' temporary node to take the node out from lattice
        Dim parentNode As New Node
        ' boolean variable to avoid the duplicacy of the parent ID's in the list
        Dim checkOnAdd As Boolean = False
        ' outer FOR loop to traverse from start to end of list of parentsList of the node
        For i = 0 To node.getNoOfParentsPointers - 1
            ' taking node out of the parent list
            parentNode = node.getParentNode(i)
            ' inner for loop to traverse in the subset list, which is list of unique parents of node
            For j = 0 To subset.Count - 1
                ' if Id of parent node exists in subset list then change the value of boolean
                'variable to true and exit for loop
                If subset.Item(j) = parentNode.getId Then
                    checkOnAdd = True
                    Exit For ' exiting for loop
                End If ' end of if condition
            Next ' end of For Loop
            'if value of that boolean variable is false then it means that parent Id does not exist
            ' in subset so add parent id to subset otherwise go to next parent node
            If checkOnAdd = False Then
                subset.Add(parentNode.getId)
            End If
            ' reintialisation of boolean variable
            checkOnAdd = False
            ' function calling itself to go to grand parents and so on, so that to traverse in whole lattice
            getAllParentsList(parentNode, subset)
        Next ' end of For loop means end of parent list
    End Function


EditText of this page (last edited April 29, 2005) or FindPage with title or text search