Skip to main content

Segregate even and odd nodes in sorted order in vb.net

Vb program for Segregate even and odd nodes in sorted order. Here more information.

' Include namespace system
Imports System 
'  Vb.net program for
'  Segregate even and odd nodes in ascending order

'  Linked list node
Public Class LinkNode
    Public  data As Integer
    Public  [next] As LinkNode
    Public Sub New(ByVal data As Integer)
        Me.data = data
        Me.next = Nothing
    End Sub
End Class

public Class SingleLL
    Public  head As LinkNode
    Public Sub New()
        '  Set head value
        Me.head = Nothing
    End Sub
    '  Add new node at the end of linked list
    Public Sub insert(ByVal value As Integer)
        '  Create  node
        Dim node As LinkNode = New LinkNode(value)
        if (Me.head  Is  Nothing) Then
            Me.head = node
        Else
            Dim temp As LinkNode = Me.head
            '  Find last node
            while (temp.[next] IsNot Nothing)
                '  Visit to next node
                temp = temp.[next]
            End While
            '  Add node at last position
            temp.[next] = node
        End IF
    End Sub
    '  Display all Linked List elements
    Public Sub display()
        if (Me.head IsNot Nothing) Then
            Dim temp As LinkNode = Me.head
            while (temp IsNot Nothing)
                '  Display node value
                Console.Write("  " + temp.data.ToString())
                '  Visit to next node
                temp = temp.[next]
            End While
        Else
            Console.WriteLine("Empty Linked list")
        End IF
    End Sub
    Public Sub sortedAdd(ByVal element As LinkNode)
        if (Me.head  Is  Nothing) Then
            Me.head = element
        ElseIf (Me.head.data >= element.data) Then
            element.[next] = Me.head
            Me.head = element
        Else
            Dim temp As LinkNode = Me.head
            '  Finding location of inserting node
            while (temp.[next] IsNot Nothing AndAlso 
                   temp.[next].data < element.data)
                '  Visit to next node
                temp = temp.[next]
            End While
            '  Add node 
            element.[next] = temp.[next]
            temp.[next] = element
        End IF
    End Sub
    Public Sub segregateNode(ByVal odd As SingleLL, 
                             ByVal even As SingleLL)
        Dim node As LinkNode = Nothing
        '  Iterating the linked list node
        while (Me.head IsNot Nothing)
            node = Me.head
            '  Visit to next node
            Me.head = node.[next]
            '  Set null to next node
            node.[next] = Nothing
            if (node.data Mod 2 = 0) Then
                '  When node value is Even
                even.sortedAdd(node)
            Else
                '  When node value is Odd
                odd.sortedAdd(node)
            End IF
        End While
    End Sub
    Public Shared Sub Main(ByVal args As String())
        '  Create linked lists
        Dim sll As SingleLL = New SingleLL()
        Dim odd As SingleLL = New SingleLL()
        Dim even As SingleLL = New SingleLL()
        '  Linked list sll
        '  4 → 3 → 5 → 2 → 11 → 1 → 6 → NULL
        sll.insert(4)
        sll.insert(3)
        sll.insert(5)
        sll.insert(2)
        sll.insert(11)
        sll.insert(1)
        sll.insert(6)
        Console.WriteLine("Initial Element")
        '  Display all node
        sll.display()
        sll.segregateNode(odd, even)
        Console.WriteLine( vbLf &"Even Element")
        '  Display all even node
        even.display()
        Console.WriteLine( vbLf &"Odd Element")
        '  Display all odd node
        odd.display()
    End Sub
End Class

Output

Initial Element
  4  3  5  2  11  1  6
Even Element
  2  4  6
Odd Element
  1  3  5  11




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