コード例 #1
0
ファイル: PILA.cs プロジェクト: Hjupol/ColeccionesArandez
        public NODO <T> Desapilar()
        {
            NODO <T> nodoDesapilado;

            nodoDesapilado = ultimoNodo;
            nodoActual     = primerNodo;
            if (ultimoNodo == primerNodo)
            {
                nodoDesapilado = primerNodo;
                primerNodo     = null;
                ultimoNodo     = null;
            }
            else
            {
                for (int i = 0; i < cantidad; i++)
                {
                    if (nodoActual.ProximoNodo == ultimoNodo)
                    {
                        ultimoNodo             = nodoActual;
                        nodoActual.ProximoNodo = null;
                    }
                }
            }
            cantidad--;
            return(nodoDesapilado);
        }
コード例 #2
0
        public NODO <T> Desencolar()
        {
            NODO <T> nodoDesapilado;

            nodoDesapilado = ultimoNodo;
            nodoActual     = primerNodo;
            if (ultimoNodo == primerNodo)
            {
                nodoDesapilado = primerNodo;
                cantidad--;
                primerNodo = null;
                ultimoNodo = null;
            }
            else
            {
                nodoDesapilado = primerNodo;
                for (int i = 0; i < cantidad; i++)
                {
                    nodoActual.Posicion--;
                    nodoActual = nodoActual.ProximoNodo;
                }
                cantidad--;
            }
            return(nodoDesapilado);
        }
コード例 #3
0
 public void AgregarPrimero(NODO <T> nuevoNodo)
 {
     if (cantidad <= 0)
     {
         nuevoNodo.ProximoNodo = null;
         primerNodo            = nuevoNodo;
         ultimoNodo            = nuevoNodo;
         cantidad++;
     }
     else
     {
         nuevoNodo.Posicion    = primerNodo.Posicion;
         nuevoNodo.ProximoNodo = primerNodo;
         nodoActual            = primerNodo;
         for (int i = 0; i < cantidad; i++)
         {
             nodoActual.Posicion++;
             if (nodoActual.ProximoNodo != null)
             {
                 nodoActual = nodoActual.ProximoNodo;
             }
         }
         primerNodo = nuevoNodo;
         cantidad++;
     }
     Console.WriteLine("Se ha agregado un nuevo nodo a la lista.\nCantidad: " + cantidad.ToString());
 }
コード例 #4
0
        public NODO <T> ObtenerUltimo(int index)
        {
            NODO <T> nodoPedido = null;

            if (ultimoNodo != null)
            {
                nodoPedido = ultimoNodo;
            }
            else
            {
                Console.WriteLine("\nLa lista no posee ningun nodo.");
            }
            return(nodoPedido);
        }
コード例 #5
0
 public void Encolar(NODO <T> nuevoNodo)
 {
     if (cantidad <= 0)
     {
         nuevoNodo.ProximoNodo = null;
         nuevoNodo.Posicion    = cantidad;
         primerNodo            = nuevoNodo;
         ultimoNodo            = nuevoNodo;
         cantidad++;
     }
     else
     {
         nuevoNodo.ProximoNodo  = null;
         nuevoNodo.Posicion     = cantidad;
         ultimoNodo.ProximoNodo = nuevoNodo;
         ultimoNodo             = nuevoNodo;
         cantidad++;
     }
     Console.WriteLine("Se ha agregado un nuevo nodo a la cola.\nCantidad: " + cantidad.ToString());
 }
コード例 #6
0
        public NODO <T> Obtener(int index)
        {
            NODO <T> nodoPedido = null;

            nodoActual = primerNodo;
            for (int i = 0; i < cantidad; i++)
            {
                if (nodoActual.Posicion == index)
                {
                    nodoPedido = nodoActual;
                    //return nodoPedido;
                }
                else
                {
                    nodoActual = nodoActual.ProximoNodo;
                }
            }
            if (nodoPedido == null)
            {
                Console.WriteLine("\nEl nodo pedido no existe.");
            }
            return(nodoPedido);
        }
コード例 #7
0
 public int Remover(int index)
 {
     nodoActual = primerNodo;
     for (int i = 0; i < cantidad; i++)
     {
         if (nodoActual.Posicion == index)
         {
             if (nodoActual.ProximoNodo != null)
             {
                 nodoActual = nodoActual.ProximoNodo;
                 nodoActual.Posicion--;
             }
             else
             {
                 nodoActual = null;
             }
         }
         else
         {
             if (nodoActual.ProximoNodo.Posicion == index)
             {
                 if (nodoActual.ProximoNodo.ProximoNodo != null)
                 {
                     nodoActual.ProximoNodo = nodoActual.ProximoNodo.ProximoNodo;
                     nodoActual.ProximoNodo.Posicion--;
                     nodoActual.ProximoNodo.ProximoNodo = null;
                 }
                 else
                 {
                     nodoActual.ProximoNodo = null;
                 }
             }
         }
     }
     cantidad--;
     return(cantidad);
 }