Skip to main content

Sum of smaller elements of nodes in a linked list in vb.net

Vb program for Sum of smaller elements of nodes in a linked list. Here problem description and other solutions.

' Include namespace system
Imports System 
' Vb.net program for
' Sum of smallest element of linked list

'  Linked list node
Public Class LinkNode
    Public  a As Integer
    Public  b As Integer
    Public  [next] As LinkNode
    Public Sub New(ByVal a As Integer, 
                   ByVal b As Integer)
        Me.a = a
        Me.b = b
        Me.next = Nothing
    End Sub
End Class
public Class SingleLL
    Public  head As LinkNode
    Public  tail As LinkNode
    Public Sub New()
        Me.head = Nothing
        Me.tail = Nothing
    End Sub
    Public Sub insert(ByVal a As Integer, 
                      ByVal b As Integer)
        Dim node As LinkNode = New LinkNode(a, b)
        if (Me.head  Is  Nothing) Then
            '  Add first node
            Me.head = node
        Else
            '  Add node at the end position
            Me.tail.[next] = node
        End IF
        '  new last node
        Me.tail = node
    End Sub
    '  Display linked list element
    Public Sub display()
        if (Me.head  Is  Nothing) Then
            Return
        End If
        Dim temp As LinkNode = Me.head
        '  iterating linked list elements
        while (temp IsNot Nothing)
            Console.Write(" (" + temp.a.ToString() + 
                          "," + temp.b.ToString() + ") →")
            '  Visit to next node
            temp = temp.[next]
        End While
        Console.WriteLine(" NULL")
    End Sub
    '  Find the sum of smaller elements of 
    '  every node in a linked list
    Public Function  nodeSum() As Integer
        Dim result As Integer = 0
        Dim temp As LinkNode = Me.head
        if (temp  Is  Nothing) Then
            Console.WriteLine("Empty linked list")
        Else
            '  Iterate the linked list
            '  And 
            '  Sum of smallest key in every node of linked list
            while (temp IsNot Nothing)
                if (temp.a > temp.b) Then
                    '  When key b is small      
                    result += temp.b
                Else
                    '  When key a is small     
                    result += temp.a
                End IF
                '  Visit to next node
                temp = temp.[next]
            End While
        End IF
        Return  result
    End Function
    Public Shared Sub Main(ByVal args As String())
        Dim sll As SingleLL = New SingleLL()
        '  Add pair
        '  (3,9) → (11,4) → (3,3) → (6,1) → (2,9) → (4,7) → NULL
        sll.insert(3, 9)
        sll.insert(11, 4)
        sll.insert(3, 3)
        sll.insert(6, 1)
        sll.insert(2, 9)
        sll.insert(4, 7)
        Console.WriteLine(" Linked List")
        sll.display()
        Console.WriteLine(" Result : " + sll.nodeSum().ToString())
    End Sub
End Class

Output

 Linked List
 (3,9) → (11,4) → (3,3) → (6,1) → (2,9) → (4,7) → NULL
 Result : 17




Comment

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment