Introducción a C#
Por Nacho Cabanes, versión 0.93 de 16-abr-2010


(Nota: Estás viendo una versión del curso antigua, creada en 2009. Es recomendable que sigas la versión 2015, mucho más actualizada, con contenidos más detallados, más ejemplos y más ejercicios propuestos)

8.7. Cómo "imitar" una pila usando "arrays"

Las estructuras dinámicas se pueden imitar usando estructuras estáticas sobredimensionadas, y esto puede ser un ejercicio de programación interesante. Por ejemplo, podríamos imitar una pila dando los siguientes pasos:

El fuente podría ser así:

/*---------------------------*/
/*  Ejemplo en C#            */
/*  pilaEstatica.cs          */
/*                           */
/*  Ejemplo de clase "Pila"  */
/*  basada en un array       */
/*                           */
/*  Introduccion a C#,       */
/*    Nacho Cabanes          */
/*---------------------------*/
 
using System;
using System.Collections;
 
public class PilaString  {
 
   string[] datosPila;
   int posicionPila;
   const int MAXPILA = 200;
 
   public static void Main()  {
 
      string palabra;
 
      PilaString miPila = new PilaString();
      miPila.Apilar("Hola,");
      miPila.Apilar("soy");
      miPila.Apilar("yo");
 
      for (byte i=0; i<3; i++) {
        palabra = (string) miPila.Desapilar();
        Console.WriteLine( palabra );
      }
 
   }
 
   // Constructor
   public PilaString() {
     posicionPila = 0;
     datosPila = new string[MAXPILA];
   }
 
   // Añadir a la pila: Apilar
   public void Apilar(string nuevoDato) {   
     if (posicionPila == MAXPILA)
       Console.WriteLine("Pila llena!");
     else {
       datosPila[posicionPila] = nuevoDato;
       posicionPila ++;
     }
   }
 
   // Extraer de la pila: Desapilar
   public string Desapilar()  {
     if (posicionPila < 0)
       Console.WriteLine("Pila vacia!");
     else {
       posicionPila --;
       return datosPila[posicionPila];
     }
     return null;
   }
 
}  // Fin de la clase
 
 

Ejercicios propuestos: