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 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 Boolean finDeRecorrido(nodoDoble p) { if (p == null) { return(true); } return(false); }
public void borrar(nodoDoble x) { if (x == null) { Console.WriteLine("Not found"); return; } desconectar(x); }
public void recorreDerIzq() { nodoDoble p = getUltimo(); while (!finDeRecorrido(p)) { Console.WriteLine(p.retornaDato()); p = p.retornaLi(); } }
public void recorreIzqDer() { nodoDoble p = getPrimero(); while (!finDeRecorrido(p)) { Console.WriteLine(p.retornaDato()); p = p.retornaLd(); } }
public nodoDoble anterior(nodoDoble x) { nodoDoble p = getPrimero(); while (p.retornaLi() != x) { p = p.retornaLi(); } return(p); }
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); }
private int compararFichas(Ficha fit) //1 para izq, 2 para derecha { nodoDoble nfi = listaTablero.getPrimero(); nodoDoble nfd = listaTablero.getUltimo(); int fi = (int)nfi.retornaDato(); int fd = (int)nfd.retornaDato(); if (fit.getN1() == fi) { listaTablero.insertar(fit.getN2(), null); Console.WriteLine(fit.getN2()); return(1); } if (fit.getN1() == fd) { listaTablero.insertar(fit.getN2(), nfd); Console.WriteLine(fit.getN2()); return(2); } if (fit.getN2() == fi) { listaTablero.insertar(fit.getN1(), null); Console.WriteLine(fit.getN1()); return(3); } if (fit.getN2() == fd) { Console.WriteLine(fit.getN1()); listaTablero.insertar(fit.getN1(), nfd); return(4); } return(0); }
public void insertar(object d, nodoDoble y) { nodoDoble x = new nodoDoble(d); conectar(x, y); }
public void setUltimo(nodoDoble ultimo) { this.ultimo = ultimo; }
public void setPrimero(nodoDoble primero) { this.primero = primero; }
public void asignaLd(nodoDoble x) { ld = x; }
public void asignaLi(nodoDoble x) { li = x; }
public nodoDoble(object d) { this.dato = d; li = null; ld = null; }