Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Module Module1
- Structure Node
- Dim data As String
- Dim nxt As Integer
- End Structure
- Const nullPointer As Integer = -1
- Class LinkedListType
- Private head, freeListPointer As Integer
- Public node As Node()
- Public Sub New(Size)
- If Size < 1 Then : Exit Sub : End If
- ReDim node(Size)
- head = nullPointer
- freeListPointer = 0
- For i = 0 To Size - 1
- node(i).nxt = i + 1
- Next
- node(Size - 1).nxt = nullPointer
- End Sub
- Public Sub Push(data As String)
- Dim newNodePointer, lastNodePointer As Integer
- If freeListPointer <> nullPointer Then
- If head = nullPointer Then
- newNodePointer = freeListPointer
- freeListPointer = node(newNodePointer).nxt
- head = newNodePointer
- Else
- lastNodePointer = head
- While node(lastNodePointer).nxt <> nullPointer
- lastNodePointer = node(lastNodePointer).nxt
- End While
- newNodePointer = freeListPointer
- freeListPointer = node(newNodePointer).nxt
- node(lastNodePointer).nxt = newNodePointer
- End If
- node(newNodePointer).data = data
- node(newNodePointer).nxt = nullPointer
- Else : Console.WriteLine("ARRAY DIMENSIONS EXCEEDED")
- End If
- End Sub
- Public Sub AddStart(data As String)
- Dim newNodePointer As Integer
- If freeListPointer <> nullPointer Then
- newNodePointer = freeListPointer
- freeListPointer = node(newNodePointer).nxt
- If head = nullPointer Then
- node(newNodePointer).nxt = nullPointer
- Else
- node(newNodePointer).nxt = head
- End If
- head = newNodePointer
- node(newNodePointer).data = data
- Else : Console.WriteLine("ARRAY DIMENSIONS EXCEEDED")
- End If
- End Sub
- Public Sub PrintList()
- Dim currentPointer As Integer = head
- While currentPointer <> nullPointer
- Console.WriteLine(Me.node(currentPointer).data)
- currentPointer = Me.node(currentPointer).nxt
- End While
- Console.WriteLine()
- End Sub
- End Class
- Sub Main()
- Dim myList As New LinkedListType(2)
- myList.AddStart("beta")
- myList.AddStart("alpha")
- myList.Push("gamma")
- myList.PrintList()
- Console.ReadLine()
- End Sub
- End Module
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement