Added code showing to linked list.
Fixed typos. Fixed warnings.
This commit is contained in:
47
src/cl/cromer/estructuras/code/listaEnlazadaCircular/buscar
Normal file
47
src/cl/cromer/estructuras/code/listaEnlazadaCircular/buscar
Normal 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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
54
src/cl/cromer/estructuras/code/listaEnlazadaDoble/buscar
Normal file
54
src/cl/cromer/estructuras/code/listaEnlazadaDoble/buscar
Normal 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;
|
||||
}
|
||||
}
|
||||
63
src/cl/cromer/estructuras/code/listaEnlazadaDoble/eliminar
Normal file
63
src/cl/cromer/estructuras/code/listaEnlazadaDoble/eliminar
Normal 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;
|
||||
}
|
||||
}
|
||||
43
src/cl/cromer/estructuras/code/listaEnlazadaDoble/insertar
Normal file
43
src/cl/cromer/estructuras/code/listaEnlazadaDoble/insertar
Normal 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;
|
||||
}
|
||||
}
|
||||
45
src/cl/cromer/estructuras/code/listaEnlazadaSimple/buscar
Normal file
45
src/cl/cromer/estructuras/code/listaEnlazadaSimple/buscar
Normal 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;
|
||||
}
|
||||
}
|
||||
51
src/cl/cromer/estructuras/code/listaEnlazadaSimple/eliminar
Normal file
51
src/cl/cromer/estructuras/code/listaEnlazadaSimple/eliminar
Normal 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;
|
||||
}
|
||||
}
|
||||
30
src/cl/cromer/estructuras/code/listaEnlazadaSimple/insertar
Normal file
30
src/cl/cromer/estructuras/code/listaEnlazadaSimple/insertar
Normal 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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user