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