Introduction to Queues.
Queues are an interesting collection. Queues represent a first-in-first-out(FIFO) collection. Think of a queue like a line at a grocery store. Customers come to the check out and are processed in the order that they came in. If you needed to program that sort of situation you could use a queue.
Queues are used a lot in real life simulations. For example, you need to model how a bank processes customers to find out the best number of tellers to have at the windows at a given time. You would create a simulation that would process how many customers come into the bank, the average wait time of a custmoer. How many customers each teller processes.
You could also use a queue in a client-server application. As each request comes into the server it is put into a queue to be processed. The server would process the requests in the order that they came in.
This is how you would create a queue:
CODE
Dim MyQueue As Queue(Of Class)
Before you can use your queue you need to create it. You do so like this:
CODE
MyQueue = New Queue(Of Class)
When you need to add an object to the queue you use the Enqueue method like this:
CODE
MyQueue.Enqueue(object)
To get the first object in the queue you use the Dequeue method.
CODE
objectVariable = MyQueue.Dequeue()
Sometimes you may want to see what the first object in the queue is without removing it from the queue. You would do this using the Peek method like this:
CODE
objectVariable = MyQueue.Peek()
To determine how many objects are in a queue you would use the Count property like this:
CODE
intNumber = MyQueue.Count
If you need to empty the queue you would use the Clear method like this:
CODE
MyQueue.Clear()
If you need to see the objects in your queue there two easy ways to do it. You can use a simple for loop or a foreach loop. This is how to do each one in turn:
CODE
For I As Integer = 0 To MyQueue.Count - 1
Console.WriteLine(MyQueue(I).ToString())
Next
CODE
For Each o As Class In MyQueue
Console.WriteLine(o.ToString())
Next
This is a simple program that demonstrates the use of queues:
CODE
Module Module1
Private MyQueue As Queue(Of String)
Sub Main()
MyQueue = New Queue(Of String)
MyQueue.Enqueue("Bobby")
MyQueue.Enqueue("Margaret")
MyQueue.Enqueue("Timmy")
MyQueue.Enqueue("Wendy")
MyQueue.Enqueue("Linda")
Console.WriteLine("This is the Queue:")
For I As Integer = 0 To MyQueue.Count - 1
Console.WriteLine(MyQueue(I))
Next
Console.WriteLine()
Console.WriteLine("Press enter to continue")
Console.ReadLine()
While (MyQueue.Count > 0)
Dim Name As String
Name = MyQueue.Peek()
Console.WriteLine("Removing {0} from the Queue", Name)
MyQueue.Dequeue()
If MyQueue.Count > 0 Then
Console.WriteLine()
Console.WriteLine("This is the Queue:")
Else
Console.WriteLine()
Console.WriteLine("The Queue is empty")
End If
WriteQueue()
End While
Console.ReadLine()
End Sub
Public Sub WriteQueue()
For Each Name As String In MyQueue
Console.WriteLine(Name)
Next
Console.WriteLine()
End Sub
End Module