Пример #1
0
 //Constructor
 public CStack()
 {
     //Instanciamos un objeto.
     inicio = new CSimpleNode();
     //Como la pila está vacia, apuntamos al siguiente nodo un -null-.
     inicio.NextNode = null;
 }
Пример #2
0
        //Este método está creando un nuevo objeto de tipo CSimpleNode.
        //Inicio funciona como un anclaje en lo cual, ese nodo siempre está vacio aputando a un objeto temporal utilizando la propiedad NextNode.
        public void Push(string pDate)
        {
            CSimpleNode temporaryNode = new CSimpleNode();

            temporaryNode.Date     = pDate;
            temporaryNode.NextNode = inicio.NextNode;

            inicio.NextNode = temporaryNode;
        }
Пример #3
0
        //Recorre la pila.
        public void Transverse()
        {
            work = inicio;

            while (work.NextNode != null)
            {
                work = work.NextNode;
                string date = work.Date;
                Console.WriteLine("[{0}]", date);
            }
        }
Пример #4
0
        //Obtiene el último valor ingresado a la pila sin eliminarlo.
        public string Peek()
        {
            string stringBox = null;

            if (inicio.NextNode != null)
            {
                work      = inicio.NextNode;
                stringBox = work.Date;
            }
            else
            {
                Console.WriteLine("The stack's empty.");
            }
            return(stringBox);
        }
Пример #5
0
        //Este se encarga de quitar el último nodo de la pila.
        public string Pop()
        {
            string stringBox = null;

            if (inicio.NextNode != null)
            {
                work            = inicio.NextNode;
                stringBox       = work.Date;
                inicio.NextNode = work.NextNode;

                /*Al indicar que el último nodo en ese momento apunte a null queda fuera de la pila y el administrador de memoria se encargará de limpiar.
                 * * En este casao, automáticamente por el garbage collector.*/
                work.NextNode = null;
            }
            else
            {
                Console.WriteLine("The stack's empty.");
            }
            return(stringBox);
        }