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
- Private size As Integer
- Public node As Node()
- Public Sub New(size As Integer)
- Me.size = size
- If size < 0 Then : Exit Sub : End If
- ReDim node(size)
- head = nullPointer
- freeListPointer = 0
- For i = 0 To size
- node(i).nxt = i + 1
- Next
- node(size).nxt = nullPointer
- End Sub
- Public Sub Enqueue(data As String)
- If size < 0 Then : Exit Sub : End If
- Dim newPointer As Integer
- If freeListPointer <> nullPointer Then
- newPointer = freeListPointer
- freeListPointer = node(newPointer).nxt
- If head = nullPointer Then
- node(newPointer).nxt = nullPointer
- Else
- node(newPointer).nxt = head
- End If
- head = newPointer
- node(newPointer).data = data
- Else : Console.WriteLine("ARRAY BOUNDS EXCEEDED")
- End If
- End Sub
- Public Function Dequeue() As String
- Dim previousPointer,
- currentPointer As Integer
- If head <> nullPointer Then
- currentPointer = head
- While node(currentPointer).nxt <> nullPointer
- previousPointer = currentPointer
- currentPointer = node(currentPointer).nxt
- End While
- If currentPointer = head Then
- head = nullPointer
- freeListPointer = 0
- For i = 0 To size
- node(i).nxt = i + 1
- Next
- node(size).nxt = nullPointer
- Else
- freeListPointer = node(previousPointer).nxt
- node(previousPointer).nxt = nullPointer
- End If
- Else : Console.WriteLine("QUEUE UNDERFLOW")
- End If
- End Function
- Public Sub PrintList()
- Dim currentPointer As Integer = head
- While currentPointer <> nullPointer
- Console.Write(node(currentPointer).data)
- currentPointer = node(currentPointer).nxt
- If currentPointer <> nullPointer Then
- Console.Write(" -> ") : End If
- End While
- Console.WriteLine()
- End Sub
- End Class
- Sub Main()
- Dim myList As New LinkedListType(2)
- myList.Enqueue("MR")
- myList.Enqueue("blue")
- myList.Enqueue("sky")
- myList.Dequeue()
- myList.PrintList()
- Console.ReadLine()
- End Sub
- End Module
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement