2016-06-27 14:47:49 -04:00
|
|
|
public void eliminar(int llave) {
|
2016-07-03 11:28:26 -04:00
|
|
|
if (lista != null) {
|
|
|
|
// Crear una lista temporario para trabajar
|
|
|
|
Enlace lista = this.lista;
|
|
|
|
// Guardar el enlace previo
|
|
|
|
Enlace previo = lista;
|
|
|
|
while (lista.getLlave() != llave) {
|
|
|
|
// Buscar hasta la llave es encontraddo
|
|
|
|
if (lista.getSiguente() != null) {
|
|
|
|
// Buscar en el sigenute enlace
|
|
|
|
previo = lista;
|
|
|
|
lista = lista.getSiguente();
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
// No se encuentra la llave
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// Se encontró
|
|
|
|
if (lista == this.lista) {
|
|
|
|
// Si es el primer enlace, cambiarlo al siguente enlace
|
|
|
|
this.lista = this.lista.getSiguente();
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
// Sino cortar este enlace de la lista
|
|
|
|
previo.setSiguente(lista.getSiguente());
|
|
|
|
}
|
|
|
|
}
|
2016-06-27 14:47:49 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
final public class Enlace {
|
2016-07-03 11:28:26 -04:00
|
|
|
private int llave;
|
|
|
|
private Enlace siguente;
|
2016-06-27 14:47:49 -04:00
|
|
|
|
2016-07-03 11:28:26 -04:00
|
|
|
public Enlace(Enlace siguiente, int llave) {
|
|
|
|
this.siguente = siguente;
|
|
|
|
this.llave = llave;
|
|
|
|
}
|
2016-06-27 14:47:49 -04:00
|
|
|
|
2016-07-03 11:28:26 -04:00
|
|
|
public int getLlave() {
|
|
|
|
return llave;
|
|
|
|
}
|
2016-06-27 14:47:49 -04:00
|
|
|
|
2016-07-03 11:28:26 -04:00
|
|
|
public Enlace getSiguente() {
|
|
|
|
return siguente;
|
|
|
|
}
|
2016-06-27 14:47:49 -04:00
|
|
|
|
2016-07-03 11:28:26 -04:00
|
|
|
public void setSiguente(Enlace siguente) {
|
|
|
|
this.siguente = siguente;
|
|
|
|
}
|
2016-06-27 14:47:49 -04:00
|
|
|
}
|