Added code showing to linked list.

Fixed typos.
Fixed warnings.
This commit is contained in:
Chris Cromer
2016-06-27 14:47:49 -04:00
parent 108eedaff2
commit 0a611b8e94
14 changed files with 485 additions and 27 deletions

View File

@@ -0,0 +1,47 @@
public Enlace buscar(int llave) {
if (this.primer != null) {
// La lista no es vacia
Enlace lista = this.primer;
int i = 0;
while (lista.getLlave() != llave && i < elementos) {
// Buscar hasta la llave es encontrado
lista = lista.getSiguente();
i++;
}
if (lista.getLlave() == llave) {
// Devoler el enlace encontrado.
return lista;
}
else {
// No se encontró.
return null;
}
}
else {
// La lista es vacia, devolver null
return null;
}
}
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;
}
}

View File

@@ -0,0 +1,57 @@
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;
}
}

View File

@@ -0,0 +1,39 @@
public void insertar(int llave) {
if (buscar(llave) == null) {
// Crear un enlace nuevo
Enlace nuevo = new Enlace(primer, llave);
if (primer == null) {
// Si el primer enlace es null, el ul
ultimo = nuevo;
}
// El primer es el nuevo.
primer = nuevo;
// El ultimo apunta al primer.
ultimo.setSiguente(primer);
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;
}
}

View File

@@ -0,0 +1,54 @@
public Enlace buscar(int llave) {
if (this.lista != null) {
// La lista no es vacia
Enlace lista = this.lista;
while (lista.getLlave() != llave) {
// Buscar hasta la llave es encontraddo
if (lista.getSiguente() != null) {
// Buscar en el sigenute enlace
lista = lista.getSiguente();
}
else {
// No se encuentra
return null;
}
}
// Se encontró, devolver el enlace
return lista;
}
else {
// La lista es vacia, devolver null
return null;
}
}
final public class Enlace {
private int llave;
private Enlace siguente;
private Enlace previo;
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;
}
public Enlace getPrevio() {
return previo;
}
public void setPrevio(Enlace previo) {
this.previo = previo;
}
}

View File

@@ -0,0 +1,63 @@
public void eliminar(int llave) {
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();
if (this.lista.getPrevio() != null) {
this.lista.setPrevio(null);
}
}
else {
// Sino cortar este enlace de la lista
previo.setSiguente(lista.getSiguente());
}
}
}
final public class Enlace {
private int llave;
private Enlace siguente;
private Enlace previo;
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;
}
public Enlace getPrevio() {
return previo;
}
public void setPrevio(Enlace previo) {
this.previo = previo;
}
}

View File

@@ -0,0 +1,43 @@
public void insertar(int llave) {
if (buscar(llave) == null) {
// Crear un enlace nuevo
Enlace nuevo = new Enlace(lista, llave);
if (lista != null) {
// El previo es el nuevo.
lista.setPrevio(nuevo);
}
// Agregar el enlace a la lista
lista = nuevo;
}
}
final public class Enlace {
private int llave;
private Enlace siguente;
private Enlace previo;
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;
}
public Enlace getPrevio() {
return previo;
}
public void setPrevio(Enlace previo) {
this.previo = previo;
}
}

View File

@@ -0,0 +1,45 @@
public Enlace buscar(int llave) {
if (this.lista != null) {
// La lista no es vacia
Enlace lista = this.lista;
while (lista.getLlave() != llave) {
// Buscar hasta la llave es encontraddo
if (lista.getSiguente() != null) {
// Buscar en el sigenute enlace
lista = lista.getSiguente();
}
else {
// No se encuentra
return null;
}
}
// Se encontró, devolver el enlace
return lista;
}
else {
// La lista es vacia, devolver null
return null;
}
}
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;
}
}

View File

@@ -0,0 +1,51 @@
public void eliminar(int llave) {
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());
}
}
}
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;
}
}

View File

@@ -0,0 +1,30 @@
public void insertar(int llave) {
if (buscar(llave) == null) {
// Crear un enlace nuevo
Enlace nuevo = new Enlace(lista, llave);
// Agregar el enlace a la lista
lista = nuevo;
}
}
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;
}
}