Advertisement
nein_yards

Linked List Array Implementation Queue 1.0

Jun 3rd, 2020
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.91 KB | None | 0 0
  1. Module Module1
  2. Structure Node
  3. Dim data As String
  4. Dim nxt As Integer
  5. End Structure
  6. Const nullPointer As Integer = -1
  7. Class LinkedListType
  8. Private head, freeListPointer As Integer
  9. Private size As Integer
  10. Public node As Node()
  11. Public Sub New(size As Integer)
  12. Me.size = size
  13. If size < 0 Then : Exit Sub : End If
  14. ReDim node(size)
  15. head = nullPointer
  16. freeListPointer = 0
  17. For i = 0 To size
  18. node(i).nxt = i + 1
  19. Next
  20. node(size).nxt = nullPointer
  21. End Sub
  22. Public Sub Enqueue(data As String)
  23. If size < 0 Then : Exit Sub : End If
  24. Dim newPointer As Integer
  25. If freeListPointer <> nullPointer Then
  26. newPointer = freeListPointer
  27. freeListPointer = node(newPointer).nxt
  28. If head = nullPointer Then
  29. node(newPointer).nxt = nullPointer
  30. Else
  31. node(newPointer).nxt = head
  32. End If
  33. head = newPointer
  34. node(newPointer).data = data
  35. Else : Console.WriteLine("ARRAY BOUNDS EXCEEDED")
  36. End If
  37. End Sub
  38. Public Function Dequeue() As String
  39. Dim previousPointer,
  40. currentPointer As Integer
  41. If head <> nullPointer Then
  42. currentPointer = head
  43. While node(currentPointer).nxt <> nullPointer
  44. previousPointer = currentPointer
  45. currentPointer = node(currentPointer).nxt
  46. End While
  47. If currentPointer = head Then
  48. head = nullPointer
  49. freeListPointer = 0
  50. For i = 0 To size
  51. node(i).nxt = i + 1
  52. Next
  53. node(size).nxt = nullPointer
  54. Else
  55. freeListPointer = node(previousPointer).nxt
  56. node(previousPointer).nxt = nullPointer
  57. End If
  58. Else : Console.WriteLine("QUEUE UNDERFLOW")
  59. End If
  60. End Function
  61. Public Sub PrintList()
  62. Dim currentPointer As Integer = head
  63. While currentPointer <> nullPointer
  64. Console.Write(node(currentPointer).data)
  65. currentPointer = node(currentPointer).nxt
  66. If currentPointer <> nullPointer Then
  67. Console.Write(" -> ") : End If
  68. End While
  69. Console.WriteLine()
  70. End Sub
  71. End Class
  72. Sub Main()
  73. Dim myList As New LinkedListType(2)
  74. myList.Enqueue("MR")
  75. myList.Enqueue("blue")
  76. myList.Enqueue("sky")
  77. myList.Dequeue()
  78. myList.PrintList()
  79. Console.ReadLine()
  80. End Sub
  81. End Module
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement