Skip to main content

Delete all prime nodes from a singly linked list in vb.net

Vb program for Delete all prime nodes from a singly linked list. Here problem description and explanation.

' Include namespace system
Imports System 
'  Vb.net Program for
'  Delete all prime nodes in linked list

'  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 initial value
        Me.head = Nothing
    
    End Sub
    '  Add new node at the end of linked list
    Public Sub addNode(ByVal value As Integer)
        '  Create new 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 
            '  Get start node
            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.Write("Empty Linked list" & vbLf )
        End IF

    
    End Sub
    '  Return given value is prime or not
    
    Public Function  checkPrime(ByVal value As Integer) As Boolean
        if (value = 1) Then 
            Return False
        Else 
            Dim i As Integer = 2
            While i <= (value / 2)

                '  Check whether value is prime or not
                if (value Mod i = 0) Then 
                    Return False
                End If

            i += 1
            End While
            Return True
        End IF

    
    End Function 
    
    Public Sub delelePrimeNode()
        if (Me.head  Is  Nothing) Then 
            Console.WriteLine("Empty linked List")
        Else 
            '  Auxiliary variables
            Dim temp As LinkNode = Me.head
            Dim hold As LinkNode = Nothing
            Dim prev As LinkNode = Nothing
            '  Iterating and find prime nodes
            
            while (temp IsNot Nothing) 
            
                if (Me.checkPrime(temp.data)) Then 
                    '  Is prime node
                    hold = temp
                Else 
                    prev = temp
                End IF

                '  Visit to next node
                temp = temp.[next]
                if (hold IsNot Nothing) Then 
                    if (hold  Is  Me.head) Then 
                        '  When delete head node
                        Me.head = temp
                        hold = Nothing
                    Else 
                        if (prev IsNot Nothing) Then 
                            prev.[next] = temp
                        End If

                        hold = Nothing
                    End IF

                End If

            End While
        End IF

    
    End Sub
    
    Public Shared Sub Main(ByVal args As String())
        Dim sll As SingleLL = New SingleLL()
        '  Linked list
        '  7 → 1 → 8 → 2 → 4 → 23 → 37 → NULL
        sll.addNode(7)
        sll.addNode(1)
        sll.addNode(8)
        sll.addNode(2)
        sll.addNode(4)
        sll.addNode(23)
        sll.addNode(37)
        Console.WriteLine(" Before Delete prime nodes ")
        sll.display()
        sll.delelePrimeNode()
        Console.WriteLine(vbLf & " After Delete prime nodes ")
        sll.display()
    
    End Sub

End Class

Output

 Before Delete prime nodes
  7  1  8  2  4  23  37
 After Delete prime nodes
  1  8  4




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