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
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