57 lines
1.5 KiB
Plaintext
57 lines
1.5 KiB
Plaintext
|
public void eliminar(int llave) {
|
||
|
if (primer != null) {
|
||
|
// Crear una lista temporario para trabajar
|
||
|
Enlace lista = this.primer;
|
||
|
// Guardar el enlace previo
|
||
|
Enlace previo = lista;
|
||
|
// Solo busca mientras que i es menor que la cantidad de enlaces
|
||
|
int i = 0;
|
||
|
while (lista.getLlave() != llave && i < elementos) {
|
||
|
// Buscar hasta la llave es encontraddo
|
||
|
if (lista.getSiguente() != null) {
|
||
|
// Buscar en el sigenute enlace
|
||
|
previo = lista;
|
||
|
lista = lista.getSiguente();
|
||
|
}
|
||
|
i++
|
||
|
}
|
||
|
|
||
|
if (lista.getLlave != llave) {
|
||
|
// No se encontró
|
||
|
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());
|
||
|
}
|
||
|
elementos--;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
final public class Enlace {
|
||
|
private int llave;
|
||
|
private Enlace siguente;
|
||
|
|
||
|
public Enlace(Enlace siguiente, int llave) {
|
||
|
this.siguente = siguente;
|
||
|
this.llave = llave;
|
||
|
}
|
||
|
|
||
|
public int getLlave() {
|
||
|
return llave;
|
||
|
}
|
||
|
|
||
|
public Enlace getSiguente() {
|
||
|
return siguente;
|
||
|
}
|
||
|
|
||
|
public void setSiguente(Enlace siguente) {
|
||
|
this.siguente = siguente;
|
||
|
}
|
||
|
}
|