Пример #1
0
 public void encolar(int _dato)
 {
     if (colaVacia())
     {
         contador++;
         principio = new Nodo(_dato);
         final     = principio;
     }
     else
     {
         if (contador == this.limiteDeDatos)
         {
             Console.WriteLine($"Haz llegado al limite de datos que admite la cola ({contador})");
             Console.ReadLine();
             return;
         }
         else
         {
             Nodo nuevo = new Nodo(_dato);
             if (principio != final)
             {
                 nuevo.setNodoSiguiente(principio);
                 principio = nuevo;
                 contador++;
                 return;
             }
             principio = nuevo;
             nuevo.setNodoSiguiente(final);
         }
     }
 }
Пример #2
0
        public void desencolar()
        {
            if (colaVacia())
            {
                Console.WriteLine("La cola esta vacia...");
            }
            else
            {
                Nodo actual   = principio;
                Nodo anterior = null;

                if (actual.getNodoSiguiente() == null)
                {
                    principio = null;
                    final     = null;
                    contador  = 0;
                    return;
                }

                while (actual.getNodoSiguiente() != null)
                {
                    anterior = actual;
                    actual   = actual.getNodoSiguiente();
                    if (actual.getNodoSiguiente() == null)
                    {
                        contador--;
                        anterior.setNodoSiguiente(null);
                    }
                }
            }
        }
        public void borrarNodo(int _posicion)
        {
            int contador = 0;

            if (estaVacia())
            {
                Console.WriteLine("No hay nodos que eliminar...");
            }
            else
            {
                Nodo actual = primero;

                //Borra si SOLO hay un nodo en la lista
                if (actual.getNodoSiguiente() == null && _posicion == 0)
                {
                    primero = null;
                    return;
                }

                Nodo anterior = null;
                while (actual.getNodoSiguiente() != null)
                {
                    if (contador == _posicion)
                    {
                        if (contador == 0)
                        {
                            actual  = actual.getNodoSiguiente();
                            primero = actual;
                            return;
                        }
                        anterior.setNodoSiguiente(actual.getNodoSiguiente());
                        return;
                    }

                    contador++;
                    anterior = actual;
                    actual   = actual.getNodoSiguiente();

                    //Si se quiere borrar el ultimo nodo
                    if (actual.getNodoSiguiente() == null && contador == _posicion)
                    {
                        anterior.setNodoSiguiente(null);
                        return;
                    }
                }
            }
        }
 public void agregarNodo(int _dato)
 {
     if (estaVacia())
     {
         primero = new Nodo(_dato);
     }
     else
     {
         Nodo nuevo  = new Nodo(_dato);
         Nodo actual = primero;
         while (actual.getNodoSiguiente() != null)
         {
             actual = actual.getNodoSiguiente();
         }
         actual.setNodoSiguiente(nuevo);
     }
 }