Clases para Implementacion de Pilas

Implementar una Pila a base de arrays. Para ello, tendremos que hacer 5 funciones:

 * PilaClear(array)
 * PilaPush(array, elemento)
 * PilaPop(array)
 * PilaPeek(array)
 * PilaCount(array)

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

Ejemplo:
Module Module1      
Sub Main()        
Dim op As Integer       
Dim array(0) As Integer       
op = -1        
While op <> 0            
Do               
Console.Clear()               
Console.WriteLine("1- Limpiar la pila."<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- Añadir elemento a la pila."<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- Saca elemento de la pila."<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- Dice nº de elementos de la pila."<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- Dice el proximo elemento a sacar de la pila."<IMG class=tse-smiley title=Wink alt=Wink src="
http://www.kriptus.com/wp-content/plugins/tango-smileys-extended/tango24/wink.png">                
Console.WriteLine("0- 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            
Loop Until op >= 0 And op < 6            
Select Case op                
Case 1                    
Console.WriteLine()                    
Console.WriteLine("Pila limpiada."<IMG class=tse-smiley title=Wink alt=Wink src="
http://www.kriptus.com/wp-content/plugins/tango-smileys-extended/tango24/wink.png">                    
PilaClear(array)                    
Console.ReadKey()                
Case 2                    
Console.WriteLine()                    
Console.WriteLine("Elemento a meter en la Pila: "<IMG class=tse-smiley title=Wink alt=Wink src="
http://www.kriptus.com/wp-content/plugins/tango-smileys-extended/tango24/wink.png">                    
Dim a As Integer                   
Console.Write("Elemento: "<IMG class=tse-smiley title=Wink alt=Wink src="
http://www.kriptus.com/wp-content/plugins/tango-smileys-extended/tango24/wink.png">                    
a = Console.ReadLine                    
array = PilaPush(array, a)                    
Console.ReadKey()                
Case 3                    
Console.WriteLine()                    
Console.WriteLine("Elemento que se ha sacado de Pila: " & PilaPop(array))                    
Console.ReadKey()                
Case 4                    
Console.WriteLine()                    
Console.WriteLine("Elementos en la Pila: " & pilacount(array))                    
Console.ReadKey()                
Case 5                    
Console.WriteLine()                    
Console.WriteLine("Proximo Elemento a sacar de la Pila: " & pilapeek(array))                    
Console.ReadKey()                
Case 0            
End Select            '
Console.ReadKey()        
End While   
End Sub     
Function PilaClear(ByRef array() As Integer) As Integer()        
ReDim array(0)        
Return array    
End Function     
Function PilaPush(ByVal array() As Integer, ByVal elemento As Integer) As Integer()        
ReDim Preserve array(UBound(array) + 1)        
array(UBound(array)) = elemento        
Return array    
End Function     
Function PilaPop(ByRef array() As Integer) As Integer       
Dim i As Integer       
i = array(UBound(array))        
ReDim Preserve array(UBound(array) - 1)        
Return i    
End Function     
Function pilacount(ByVal array() As Integer) As Integer       
Return UBound(array)    
End Function     
Function pilapeek(ByVal array() As Integer) As Integer       
Return array(UBound(array))    
End Function 
End Module