Пример #1
0
 public void conectar(nodoDoble x, nodoDoble y)
 {
     if (y == null)
     {
         if (primero == null)
         {
             ultimo = x;
         }
         else
         {
             x.asignaLd(primero);
             primero.asignaLi(x);
         }
         primero = x;
         return;
     }
     if (y == ultimo)
     {
         x.asignaLi(y);
         y.asignaLd(x);
         ultimo = x;
     }
     else
     {
         x.asignaLi(y);
         x.asignaLd(y.retornaLd());
         y.asignaLd(x);
         y.retornaLd().asignaLi(x);
     }
 }
Пример #2
0
 public void desconectar(nodoDoble x)
 {
     if (primero == x)
     {
         primero = x.retornaLd();
         if (primero == null)
         {
             ultimo = null;
         }
         else
         {
             primero.asignaLi(null);
         }
         return;
     }
     if (x == ultimo)
     {
         ultimo = x.retornaLi();
         ultimo.asignaLd(null);
     }
     else
     {
         x.retornaLi().asignaLd(x.retornaLd());
         x.retornaLd().asignaLi(x.retornaLi());
     }
 }
Пример #3
0
        public void recorreIzqDer()
        {
            nodoDoble p = getPrimero();

            while (!finDeRecorrido(p))
            {
                Console.WriteLine(p.retornaDato());
                p = p.retornaLd();
            }
        }
Пример #4
0
        public nodoDoble buscarDato(object d)
        {
            nodoDoble p = getPrimero();

            while (!finDeRecorrido(p) && !p.retornaDato().Equals(d))
            {
                p = p.retornaLd();
            }
            return(p);
        }
Пример #5
0
        public nodoDoble buscarDondeInsertar(object d)
        {
            nodoDoble p = getPrimero();
            nodoDoble y = anterior(p);

            while (!finDeRecorrido(p) && (int)p.retornaDato() < (int)d) //REVISAR EN CASO DE ERROR
            {
                y = p;
                p = p.retornaLd();
            }
            return(y);
        }