Added code showing to linked list.
Fixed typos. Fixed warnings.
This commit is contained in:
parent
108eedaff2
commit
0a611b8e94
@ -3,10 +3,7 @@ package cl.cromer.estructuras;
|
|||||||
import javafx.animation.Animation;
|
import javafx.animation.Animation;
|
||||||
import javafx.animation.PauseTransition;
|
import javafx.animation.PauseTransition;
|
||||||
import javafx.animation.SequentialTransition;
|
import javafx.animation.SequentialTransition;
|
||||||
import javafx.geometry.Pos;
|
|
||||||
import javafx.scene.Scene;
|
import javafx.scene.Scene;
|
||||||
import javafx.scene.canvas.Canvas;
|
|
||||||
import javafx.scene.canvas.GraphicsContext;
|
|
||||||
import javafx.scene.layout.Pane;
|
import javafx.scene.layout.Pane;
|
||||||
import javafx.scene.layout.StackPane;
|
import javafx.scene.layout.StackPane;
|
||||||
import javafx.scene.paint.Color;
|
import javafx.scene.paint.Color;
|
||||||
|
@ -61,7 +61,7 @@ final public class ListaEnlazada {
|
|||||||
// La lista no es vacia
|
// La lista no es vacia
|
||||||
Enlace lista = this.lista;
|
Enlace lista = this.lista;
|
||||||
while (lista.getLlave() != llave) {
|
while (lista.getLlave() != llave) {
|
||||||
// Buscar hasta la llave es encontraddo
|
// Buscar hasta la llave es encontrado
|
||||||
if (lista.getSiguente() != null) {
|
if (lista.getSiguente() != null) {
|
||||||
// Buscar en la sigenute enlace
|
// Buscar en la sigenute enlace
|
||||||
lista = (Enlace) lista.getSiguente();
|
lista = (Enlace) lista.getSiguente();
|
||||||
@ -88,13 +88,13 @@ final public class ListaEnlazada {
|
|||||||
public boolean insertar(int llave) {
|
public boolean insertar(int llave) {
|
||||||
if (buscar(llave) == null) {
|
if (buscar(llave) == null) {
|
||||||
// Crear una enlace y agregarla a la lista
|
// Crear una enlace y agregarla a la lista
|
||||||
Enlace nueva = new EnlaceNormal();
|
Enlace nuevo = new EnlaceNormal();
|
||||||
nueva.setLlave(llave);
|
nuevo.setLlave(llave);
|
||||||
nueva.setSiguente(lista);
|
nuevo.setSiguente(lista);
|
||||||
if (lista != null) {
|
if (lista != null) {
|
||||||
lista.setPrevio(nueva);
|
lista.setPrevio(nuevo);
|
||||||
}
|
}
|
||||||
lista = nueva;
|
lista = nuevo;
|
||||||
size++;
|
size++;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -132,12 +132,14 @@ final public class ListaEnlazadaCircular {
|
|||||||
previo = lista;
|
previo = lista;
|
||||||
lista = (Enlace) lista.getSiguente();
|
lista = (Enlace) lista.getSiguente();
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
// No se encuentra
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (lista.getLlave() != llave) {
|
||||||
|
// No se encontró
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// Se encontró
|
// Se encontró
|
||||||
if (lista == this.primer) {
|
if (lista == this.primer) {
|
||||||
// Si es la primera enlace, cambiarla al siguente enlace
|
// Si es la primera enlace, cambiarla al siguente enlace
|
||||||
@ -176,4 +178,3 @@ final public class ListaEnlazadaCircular {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,7 +3,6 @@ package cl.cromer.estructuras;
|
|||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.fxml.Initializable;
|
import javafx.fxml.Initializable;
|
||||||
import javafx.scene.Scene;
|
import javafx.scene.Scene;
|
||||||
import javafx.scene.canvas.Canvas;
|
|
||||||
import javafx.scene.control.ButtonBar;
|
import javafx.scene.control.ButtonBar;
|
||||||
import javafx.scene.control.ButtonType;
|
import javafx.scene.control.ButtonType;
|
||||||
import javafx.scene.control.Dialog;
|
import javafx.scene.control.Dialog;
|
||||||
@ -13,6 +12,7 @@ import javafx.scene.text.Text;
|
|||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.ResourceBundle;
|
import java.util.ResourceBundle;
|
||||||
|
import java.util.Scanner;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -151,7 +151,7 @@ public class ListaEnlazdaController implements Initializable {
|
|||||||
initializeLista();
|
initializeLista();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*String tipo;
|
String tipo;
|
||||||
switch (listaEnlazadaTipos.getTipo()) {
|
switch (listaEnlazadaTipos.getTipo()) {
|
||||||
case ListaEnlazadaTipos.SIMPLE:
|
case ListaEnlazadaTipos.SIMPLE:
|
||||||
tipo = "Simple";
|
tipo = "Simple";
|
||||||
@ -160,15 +160,15 @@ public class ListaEnlazdaController implements Initializable {
|
|||||||
tipo = "Circular";
|
tipo = "Circular";
|
||||||
break;
|
break;
|
||||||
case ListaEnlazadaTipos.DOBLEMENTE_ENLAZADA:
|
case ListaEnlazadaTipos.DOBLEMENTE_ENLAZADA:
|
||||||
tipo = "Doblemente";
|
tipo = "Doble";
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
tipo = "Simple";
|
tipo = "Simple";
|
||||||
}*/
|
}
|
||||||
|
|
||||||
// Mostrar el codigo
|
// Mostrar el codigo
|
||||||
//String codigoTexto = new Scanner(getClass().getResourceAsStream("/cl/cromer/estructuras/code/listaEnlazada" + tipo + "/insertar")).useDelimiter("\\Z").next();
|
String codigoTexto = new Scanner(getClass().getResourceAsStream("/cl/cromer/estructuras/code/listaEnlazada" + tipo + "/insertar")).useDelimiter("\\Z").next();
|
||||||
//codigoLista.setText(codigoTexto);
|
codigoLista.setText(codigoTexto);
|
||||||
|
|
||||||
if (valorLista.getText() != null && !valorLista.getText().trim().equals("")) {
|
if (valorLista.getText() != null && !valorLista.getText().trim().equals("")) {
|
||||||
try {
|
try {
|
||||||
@ -212,10 +212,24 @@ public class ListaEnlazdaController implements Initializable {
|
|||||||
initializeLista();
|
initializeLista();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String tipo;
|
||||||
|
switch (listaEnlazadaTipos.getTipo()) {
|
||||||
|
case ListaEnlazadaTipos.SIMPLE:
|
||||||
|
tipo = "Simple";
|
||||||
|
break;
|
||||||
|
case ListaEnlazadaTipos.CIRCULAR:
|
||||||
|
tipo = "Circular";
|
||||||
|
break;
|
||||||
|
case ListaEnlazadaTipos.DOBLEMENTE_ENLAZADA:
|
||||||
|
tipo = "Doble";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
tipo = "Simple";
|
||||||
|
}
|
||||||
|
|
||||||
// Mostrar el codigo
|
// Mostrar el codigo
|
||||||
//String tipo = (array.isOrdered())?"Ordenado":"Simple";
|
String codigoTexto = new Scanner(getClass().getResourceAsStream("/cl/cromer/estructuras/code/listaEnlazada" + tipo + "/eliminar")).useDelimiter("\\Z").next();
|
||||||
//String codigoTexto = new Scanner(getClass().getResourceAsStream("/cl/cromer/estructuras/code/array" + tipo + "/eliminar")).useDelimiter("\\Z").next();
|
codigoLista.setText(codigoTexto);
|
||||||
//codigoLista.setText(codigoTexto);
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (valorLista.getText() != null && !valorLista.getText().trim().equals("")) {
|
if (valorLista.getText() != null && !valorLista.getText().trim().equals("")) {
|
||||||
@ -255,10 +269,24 @@ public class ListaEnlazdaController implements Initializable {
|
|||||||
initializeLista();
|
initializeLista();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String tipo;
|
||||||
|
switch (listaEnlazadaTipos.getTipo()) {
|
||||||
|
case ListaEnlazadaTipos.SIMPLE:
|
||||||
|
tipo = "Simple";
|
||||||
|
break;
|
||||||
|
case ListaEnlazadaTipos.CIRCULAR:
|
||||||
|
tipo = "Circular";
|
||||||
|
break;
|
||||||
|
case ListaEnlazadaTipos.DOBLEMENTE_ENLAZADA:
|
||||||
|
tipo = "Doble";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
tipo = "Simple";
|
||||||
|
}
|
||||||
|
|
||||||
// Mostrar el codigo
|
// Mostrar el codigo
|
||||||
//String tipo = (array.isOrdered())?"Ordenado":"Simple";
|
String codigoTexto = new Scanner(getClass().getResourceAsStream("/cl/cromer/estructuras/code/listaEnlazada" + tipo + "/buscar")).useDelimiter("\\Z").next();
|
||||||
//String codigoTexto = new Scanner(getClass().getResourceAsStream("/cl/cromer/estructuras/code/array" + tipo + "/buscar")).useDelimiter("\\Z").next();
|
codigoLista.setText(codigoTexto);
|
||||||
//codigoLista.setText(codigoTexto);
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (valorLista.getText() != null && !valorLista.getText().trim().equals("")) {
|
if (valorLista.getText() != null && !valorLista.getText().trim().equals("")) {
|
||||||
|
@ -34,6 +34,7 @@ public class TextFieldLimited extends TextField {
|
|||||||
* Lista de estilos aplicable.
|
* Lista de estilos aplicable.
|
||||||
* @return List: La lista de estilos.
|
* @return List: La lista de estilos.
|
||||||
*/
|
*/
|
||||||
|
@SuppressWarnings("unused")
|
||||||
public static List<CssMetaData<? extends Styleable, ?>> getClassCssMetaData() {
|
public static List<CssMetaData<? extends Styleable, ?>> getClassCssMetaData() {
|
||||||
return TextFieldLimited.StyleableProperties.STYLEABLES;
|
return TextFieldLimited.StyleableProperties.STYLEABLES;
|
||||||
}
|
}
|
||||||
@ -93,6 +94,7 @@ public class TextFieldLimited extends TextField {
|
|||||||
* Asignar un valor maximo de caracters permitidio en el TextFieldLimited.
|
* Asignar un valor maximo de caracters permitidio en el TextFieldLimited.
|
||||||
* @param value int: La cantidad maxima.
|
* @param value int: La cantidad maxima.
|
||||||
*/
|
*/
|
||||||
|
@SuppressWarnings("unused")
|
||||||
public final void setMaxLength(int value) {
|
public final void setMaxLength(int value) {
|
||||||
if (maxLength != null || value > 0) {
|
if (maxLength != null || value > 0) {
|
||||||
maxLengthProperty().set(value);
|
maxLengthProperty().set(value);
|
||||||
@ -138,6 +140,7 @@ public class TextFieldLimited extends TextField {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
public StyleableProperty<Number> getStyleableProperty(TextFieldLimited node) {
|
public StyleableProperty<Number> getStyleableProperty(TextFieldLimited node) {
|
||||||
return (StyleableProperty<Number>) node.maxLengthProperty();
|
return (StyleableProperty<Number>) node.maxLengthProperty();
|
||||||
}
|
}
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user