construct a linked list from 2d matrix in vb.net
Vb program for construct a linked list from 2d matrix. Here more information.
' Include namespace system
Imports System
' Vb.net program for
' Construct a linked list from 2D matrix
Public Class LinkNode
Public data As Integer
Public [next] As LinkNode
Public down As LinkNode
Public Sub New(ByVal data As Integer)
Me.data = data
Me.next = Nothing
Me.down = Nothing
End Sub
End Class
public Class DoublyLinkedList
Public head As LinkNode
Public Sub New()
' Set inital value
Me.head = Nothing
End Sub
Public Sub display()
if (Me.head Is Nothing) Then
Console.Write("Empty linked list")
Else
Dim front As LinkNode = Me.head
Dim right As LinkNode = Nothing
while (front IsNot Nothing)
right = front
while (right IsNot Nothing)
Console.Write(right.data.ToString() + " ")
right = right.[next]
End While
Console.Write( vbLf )
' Visit to down node
front = front.down
End While
End IF
End Sub
Public Sub insertData(ByVal matrix As Integer(,),
ByVal rows As Integer, ByVal cols As Integer)
' Some auxiliary variables
Dim levelHead As LinkNode = Nothing
Dim root As LinkNode = Nothing
Dim perv As LinkNode = Nothing
Dim i As Integer = 0
Dim j As Integer = 0
' Add first row elements into result list
while (i < cols)
if (Me.head Is Nothing) Then
' Add first node
Me.head = New LinkNode(matrix(0,i))
levelHead = Me.head
Else
' next head
levelHead.[next] = New LinkNode(matrix(0,i))
levelHead = levelHead.[next]
End IF
i += 1
End While
' Get first element
levelHead = Me.head
i = 1
' Add all the bottom element of each column
while (i < rows)
root = Nothing
perv = root
while (j < cols)
levelHead.down = New LinkNode(matrix(i,j))
if (root Is Nothing) Then
root = levelHead.down
perv = root
Else
perv.[next] = levelHead.down
perv = levelHead.down
End IF
levelHead = levelHead.[next]
j += 1
End While
levelHead = root
' reset col
j = 0
' change row
i += 1
End While
End Sub
Public Shared Sub Main(ByVal args As String())
Dim dll As DoublyLinkedList = New DoublyLinkedList()
' Create 2D metrix
Dim matrix As Integer(,) =
{
{1, 6, 9, 2, -9},
{2, 5, -5, 7, 1},
{3, 4, 1, 8, 2}
}
Dim rows As Integer = matrix.GetLength(0)
Dim cols As Integer = matrix.GetLength(1)
dll.insertData(matrix, rows, cols)
dll.display()
End Sub
End Class
Output
1 6 9 2 -9
2 5 -5 7 1
3 4 1 8 2
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