Clases para Implementacion de Colas

Implementar una Cola a base de arrays. Para ello, tendremos que hacer 5 funciones:
 * ColaClear(array)
 * ColaEnqueue(array, elemento)
 * ColaDequeue(array)
 * ColaPeek(array)
 * ColaCount(array)

A todas las funciones habrá que pasarles el array que hará las veces de cola.
La función Dequeue y Peek devolverán el elemento que esté en la primera posición, pero mientras que Dequeue borra el elemento, Peek lo deja donde está.
La función Clear nos deja la cola vacía.
La función Count nos devuelve el tamaño de la cola.
Por último la función Enqueue añade un elemento a la cola, redimensionando el array cuando haga falta.

Ejemplo:
Module Module1      
Sub Main()        
'Implementacion de una cola.        
Dim a() As Integer       
Dim op, i As Integer       
ReDim a(0)        
op = -1        
While op <> 0            
Do               
Console.Clear()                
Console.WriteLine("Menu Principal"<IMG class=tse-smiley title=Wink alt=Wink src="
http://www.kriptus.com/wp-content/plugins/tango-smileys-extended/tango24/wink.png">                
Console.WriteLine()                
Console.WriteLine("1.Funcion Colaclear() - Borra toda la cola."<IMG class=tse-smiley title=Wink alt=Wink src="
http://www.kriptus.com/wp-content/plugins/tango-smileys-extended/tango24/wink.png">                
Console.WriteLine("2.Funcion ColaEnqueue(array, elemento) - meter elemento en la cola."<IMG class=tse-smiley title=Wink alt=Wink src="
http://www.kriptus.com/wp-content/plugins/tango-smileys-extended/tango24/wink.png">                
Console.WriteLine("3.Funcion ColaDequeue(array) - saca elemento de la cola."<IMG class=tse-smiley title=Wink alt=Wink src="
http://www.kriptus.com/wp-content/plugins/tango-smileys-extended/tango24/wink.png">                
Console.WriteLine("4.Funcion ColaPeek(array) - da el proximo elemento de la cola."<IMG class=tse-smiley title=Wink alt=Wink src="
http://www.kriptus.com/wp-content/plugins/tango-smileys-extended/tango24/wink.png">                
Console.WriteLine("5-Funcion ColaCount(array) - da el nº elementos de la cola."<IMG class=tse-smiley title=Wink alt=Wink src="
http://www.kriptus.com/wp-content/plugins/tango-smileys-extended/tango24/wink.png">                
Console.WriteLine("6-Ver la cola"<IMG class=tse-smiley title=Wink alt=Wink src="
http://www.kriptus.com/wp-content/plugins/tango-smileys-extended/tango24/wink.png">                
Console.WriteLine("7.Salir"<IMG class=tse-smiley title=Wink alt=Wink src="
http://www.kriptus.com/wp-content/plugins/tango-smileys-extended/tango24/wink.png">                
Console.WriteLine()                
op = Console.ReadLine                
Console.WriteLine()            
Loop Until op > 0 And op < 8            
Select Case op                
Case 1                    
i = 0                    
Dim cad As String = "Procediendo a borrar la cola "                   
While i < 5                        
Console.SetCursorPosition(0, 12)                        
Console.Write(cad)                        
Threading.Thread.Sleep(1000)                        
cad += "."                       
i += 1                    
End While                   
a = colaclear(a)                    
Console.WriteLine("pulsa una tecla."<IMG class=tse-smiley title=Wink alt=Wink src="
http://www.kriptus.com/wp-content/plugins/tango-smileys-extended/tango24/wink.png">                    
Console.ReadKey()                
Case 2                    
Console.SetCursorPosition(0, 12)                    
Console.Write("Dame un numero a meter en la cola: "<IMG class=tse-smiley title=Wink alt=Wink src="
http://www.kriptus.com/wp-content/plugins/tango-smileys-extended/tango24/wink.png">                    
Dim n As Integer = Console.ReadLine                    
a = colaenqueue(a, n)                    
Console.WriteLine("pulsa una tecla."<IMG class=tse-smiley title=Wink alt=Wink src="
http://www.kriptus.com/wp-content/plugins/tango-smileys-extended/tango24/wink.png">                    
Console.ReadKey()                
Case 3                    
Console.SetCursorPosition(0, 12)                    
Console.WriteLine("Valor sacado de la cola: " & coladequeue(a))                    
Console.WriteLine("pulsa una tecla."<IMG class=tse-smiley title=Wink alt=Wink src="
http://www.kriptus.com/wp-content/plugins/tango-smileys-extended/tango24/wink.png">                    
Console.ReadKey()                
Case 4                    
Console.SetCursorPosition(0, 12)                    
Console.WriteLine("proximo valor de la cola: " & colapeek(a))                    
Console.WriteLine("pulsa una tecla."<IMG class=tse-smiley title=Wink alt=Wink src="
http://www.kriptus.com/wp-content/plugins/tango-smileys-extended/tango24/wink.png">                    
Console.ReadKey()                
Case 5                    
Console.WriteLine("Elementos en la cola: " & colacount(a))                    
Console.WriteLine("pulsa una tecla."<IMG class=tse-smiley title=Wink alt=Wink src="
http://www.kriptus.com/wp-content/plugins/tango-smileys-extended/tango24/wink.png">                    
Console.ReadKey()                
Case 6                    
Dim p As Integer                   
For p = 1 To UBound(a)                        
Console.Write(a(p) & " "<IMG class=tse-smiley title=Wink alt=Wink src="
http://www.kriptus.com/wp-content/plugins/tango-smileys-extended/tango24/wink.png">                    
Next                   
Console.WriteLine()                    
Console.WriteLine("pulsa una tecla."<IMG class=tse-smiley title=Wink alt=Wink src="
http://www.kriptus.com/wp-content/plugins/tango-smileys-extended/tango24/wink.png">                    
Console.ReadKey()                
Case 7                    
op = 0            
End Select           
' Console.ReadKey()        
End While   
End Sub     
Function colaclear(ByVal a() As Integer) As Integer()        
ReDim a(0)        
Return a    
End Function     
Function colaenqueue(ByVal a() As Integer, ByVal n As Integer) As Integer()        
Dim i As Integer       
i = colacount(a)        
ReDim Preserve a(i + 1)        
a(i + 1) = n        
Return a    
End Function     
Function colacount(ByVal a() As Integer) As Integer       
Dim i, j As Integer       
j = 0        
For i = 1 To UBound(a)            
j += 1        
Next       
Return j    
End Function     
Function coladequeue(ByRef a() As Integer) As Integer       
Dim n, i As Integer       
Dim b() As Integer       
n = colacount(a)        
ReDim b(UBound(a) - 1)        
For i = 2 To UBound(a)            
b(i - 1) = a(i)        
Next       
n = a(1)        
ReDim a(UBound(b))        
a = b        
Return n    
End Function     
Function colapeek(ByVal a() As Integer) As Integer       
Dim n As Integer       
n = UBound(a)        
If n >= 1 Then           
Return a(1)        
Else           
Return a(0)        
End If   
End Function
End Module