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); } }
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()); } }
public void recorreIzqDer() { nodoDoble p = getPrimero(); while (!finDeRecorrido(p)) { Console.WriteLine(p.retornaDato()); p = p.retornaLd(); } }
public nodoDoble buscarDato(object d) { nodoDoble p = getPrimero(); while (!finDeRecorrido(p) && !p.retornaDato().Equals(d)) { p = p.retornaLd(); } return(p); }
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); }