示例#1
0
 public void QuitarNodoPosicion(int numero)
 {
     if (NodoInicial != null)
     {
         if (NodoInicial.Numero == numero) //Si es el numero del primero
         {
             QuitarPrimerNodo();
         }
         else
         {
             NodoSimple unNodoUltimo = new NodoSimple();
             unNodoUltimo = BuscarNodoUltimo(NodoInicial);
             if (unNodoUltimo != null && unNodoUltimo.Numero == numero) //Si resulta ser el Id del ultimo
             {
                 QuitarUltimoNodo();
             }
             else // Se quiere borrar un nodo intermedio
             {
                 NodoSimple unNodoAnteriorAlElegido = new NodoSimple();
                 unNodoAnteriorAlElegido = BuscarAnteriorNodo(NodoInicial, numero);
                 if (unNodoAnteriorAlElegido != null)
                 {
                     unNodoAnteriorAlElegido.Siguiente = unNodoAnteriorAlElegido.Siguiente.Siguiente;
                 }
             }
         }
     }
 }
示例#2
0
 public void QuitarPrimerNodo()
 {
     if (NodoInicial != null)
     {
         NodoInicial = NodoInicial.Siguiente;
     }
 }
示例#3
0
        public void AgregarDespuesDelSeleccionado(NodoSimple unNodo, string detalle, string dato2, string dato3, string dato4)
        {
            NodoSimple unNodoPosterior = unNodo.Siguiente;
            NodoSimple unNodoNuevo     = new NodoSimple();

            unNodoNuevo.Numero  = ProximoNumeroNodo();
            unNodoNuevo.Detalle = detalle;
            unNodoNuevo.Dato2   = dato2;
            unNodoNuevo.Dato3   = dato3;
            unNodoNuevo.Dato4   = dato4;
            unNodo.Siguiente    = unNodoNuevo;
            if (NodoInicial == null)
            {
                NodoInicial = unNodoNuevo;
            }
            else

            {
                //si hay elementos en la lista, tenemos que agregarlo entre el inicial y el siguiente

                // NodoSimple nodoAnterior = BuscarAnteriorNodo(NodoInicial, ); //BuscarNodoUltimo(NodoInicial);
                unNodoNuevo.Siguiente = unNodoPosterior;
                ;
            }
        }
示例#4
0
        public bool Eliminar(T t)
        {
            NodoSimple <T> n         = Inicio;
            NodoSimple <T> nAnterior = null;

            while (n != null)
            {
                if (n.Dato.Equals(t))
                {
                    if (nAnterior == null)
                    {
                        nAnterior = Inicio;
                    }

                    nAnterior.Enlace = n.Enlace;
                }
                else
                {
                    nAnterior = n;
                }

                n = n?.Enlace;
            }

            return(false);
        }
示例#5
0
        public ListaEnlazada <T> Agregar(T t)
        {
            NodoSimple <T> nuevo = new NodoSimple <T>(t);

            nuevo.Enlace = Inicio;
            Inicio       = nuevo;

            return(this);
        }
示例#6
0
        public void AgregarNodoAlFinal(string detalle, string dato2, string dato3, string dato4)
        {
            NodoSimple unNodo = new NodoSimple();

            unNodo.Numero  = ProximoNumeroNodo();
            unNodo.Detalle = detalle;
            unNodo.Dato2   = dato2;
            unNodo.Dato3   = dato3;
            unNodo.Dato4   = dato4;

            NodoSimple nodoUltimo = BuscarNodoUltimo(NodoInicial);

            nodoUltimo.Siguiente = unNodo;
        }
示例#7
0
        public void QuitarUltimoNodo()
        {
            NodoSimple nodoAnteultimo = new NodoSimple();

            nodoAnteultimo = BuscarNodoAnteultimo(NodoInicial);

            if (nodoAnteultimo == null)
            {
                NodoInicial = null;
            }
            else
            {
                nodoAnteultimo.Siguiente = null;
            }
        }
示例#8
0
        private NodoSimple BuscarNodoUltimo(NodoSimple unNodo)
        {
            if (unNodo == null)
            {
                return(null);
            }

            if (unNodo.Siguiente == null)
            {
                return(unNodo);
            }
            else
            {
                return(BuscarNodoUltimo(unNodo.Siguiente));
            }
        }
示例#9
0
 private NodoSimple BuscarAnteriorNodo(NodoSimple unNodo, int numero)
 {
     if (unNodo.Siguiente != null && unNodo.Siguiente.Numero == numero)
     {
         return(unNodo);
     }
     else
     {
         if (unNodo.Siguiente != null)
         {
             return(BuscarAnteriorNodo(unNodo.Siguiente, numero));
         }
         else
         {
             return(null);
         }
     }
 }
示例#10
0
        private int BuscarIdMaximoNodo(NodoSimple unNodo, int numero)
        {
            int numIdMaximoNodo;

            if (unNodo.Numero > numero)
            {
                numIdMaximoNodo = unNodo.Numero;
            }
            else
            {
                numIdMaximoNodo = numero;
            }

            if (unNodo.Siguiente == null)
            {
                return(numIdMaximoNodo);
            }
            else
            {
                return(BuscarIdMaximoNodo(unNodo.Siguiente, numIdMaximoNodo));
            }
        }
示例#11
0
        //public NodoSimple NodoPosicion = null;

        public void AgregarNodoAlInicio(string detalle, string dato2, string dato3, string dato4)
        {
            NodoSimple unNodo = new NodoSimple();

            unNodo.Numero  = ProximoNumeroNodo();
            unNodo.Detalle = detalle;
            unNodo.Dato2   = dato2;
            unNodo.Dato3   = dato3;
            unNodo.Dato4   = dato4;
            if (NodoInicial == null)
            {
                NodoInicial = unNodo;
            }
            else
            {
                //si hay elementos en la lista, tenemos que agregarlo entre el inicial y el siguiente

                NodoSimple aux = NodoInicial;
                NodoInicial           = unNodo;
                NodoInicial.Siguiente = aux;
            }
        }
        public override object ejecutarSinposicion(ZContenedor e)
        {
            NodoSimple nodo = new NodoSimple(a => Dbms.crearTabla(nombreTabla, encabezados, e));

            return(nodo.ejecutar(e));
        }
 public NodoSimple(T t, NodoSimple <T> n)
 {
     Dato   = t;
     Enlace = n;
 }
 public NodoSimple(T t)
 {
     Enlace = null;
     Dato   = t;
 }
示例#15
0
 public ListaEnlazada()
 {
     Inicio = null;
 }