Lista enlazada added.
This commit is contained in:
parent
e89d581b0a
commit
2f4c70ad4c
@ -134,6 +134,7 @@ public class ArrayController implements Initializable {
|
|||||||
try {
|
try {
|
||||||
boolean exito = array.insertar(Integer.valueOf(valorArray.getText()));
|
boolean exito = array.insertar(Integer.valueOf(valorArray.getText()));
|
||||||
if (exito) {
|
if (exito) {
|
||||||
|
valorArray.setText("");
|
||||||
generarGrafico();
|
generarGrafico();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -179,6 +180,7 @@ public class ArrayController implements Initializable {
|
|||||||
if (valorArray.getText() != null && !valorArray.getText().trim().equals("")) {
|
if (valorArray.getText() != null && !valorArray.getText().trim().equals("")) {
|
||||||
boolean exito = array.eliminar(Integer.valueOf(valorArray.getText()));
|
boolean exito = array.eliminar(Integer.valueOf(valorArray.getText()));
|
||||||
if (exito) {
|
if (exito) {
|
||||||
|
valorArray.setText("");
|
||||||
generarGrafico();
|
generarGrafico();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -129,6 +129,7 @@ public class ColaController implements Initializable {
|
|||||||
try {
|
try {
|
||||||
if (cola.size() < 10) {
|
if (cola.size() < 10) {
|
||||||
cola.push(Integer.valueOf(valorCola.getText()));
|
cola.push(Integer.valueOf(valorCola.getText()));
|
||||||
|
valorCola.setText("");
|
||||||
generarGrafico();
|
generarGrafico();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -7,6 +7,7 @@ import javafx.scene.Scene;
|
|||||||
import javafx.scene.layout.StackPane;
|
import javafx.scene.layout.StackPane;
|
||||||
import javafx.scene.paint.Color;
|
import javafx.scene.paint.Color;
|
||||||
import javafx.scene.shape.Circle;
|
import javafx.scene.shape.Circle;
|
||||||
|
import javafx.scene.shape.Line;
|
||||||
import javafx.scene.shape.Rectangle;
|
import javafx.scene.shape.Rectangle;
|
||||||
import javafx.scene.text.Text;
|
import javafx.scene.text.Text;
|
||||||
import javafx.util.Duration;
|
import javafx.util.Duration;
|
||||||
@ -65,6 +66,22 @@ public class Grafico {
|
|||||||
destacado = -1;
|
destacado = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Crear una linea vertical
|
||||||
|
* @return StackPane: Devolver el stackpane que contiene la linea vertical.
|
||||||
|
*/
|
||||||
|
public static StackPane crearLineaVertical() {
|
||||||
|
Line line = new Line();
|
||||||
|
line.setStartX(20);
|
||||||
|
line.setEndX(20);
|
||||||
|
line.setStartY(0);
|
||||||
|
line.setEndY(20);
|
||||||
|
|
||||||
|
StackPane stackPane = new StackPane();
|
||||||
|
stackPane.getChildren().addAll(line);
|
||||||
|
return stackPane;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Crear un rectangulo con texto adentro.
|
* Crear un rectangulo con texto adentro.
|
||||||
* @param colores Colores: Los colores para dar color al rectangulo.
|
* @param colores Colores: Los colores para dar color al rectangulo.
|
||||||
@ -111,6 +128,31 @@ public class Grafico {
|
|||||||
return stackPane;
|
return stackPane;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Crear un rectangulo con texto adentro.
|
||||||
|
* @param colores Colores: Los colores para dar color al rectangulo.
|
||||||
|
* @param label String: El texto por el ID de fxml.
|
||||||
|
* @param texto String: El texto a colocar dentro el rectangulo.
|
||||||
|
* @param tamano int: El tamaño del rectangulo.
|
||||||
|
* @return StackPane: Devolver el stackpane que contiene el rectangulo y texto.
|
||||||
|
*/
|
||||||
|
public static StackPane crearCaja(Colores colores, String label, String texto, int tamano) {
|
||||||
|
Rectangle rectangle = new Rectangle();
|
||||||
|
rectangle.setHeight(tamano);
|
||||||
|
rectangle.setWidth(tamano);
|
||||||
|
rectangle.setFill(colores.getFondo());
|
||||||
|
rectangle.setStroke(Color.BLACK);
|
||||||
|
rectangle.setId("border_" + label);
|
||||||
|
Text text = new Text();
|
||||||
|
text.setId("caja_" + label);
|
||||||
|
text.setStroke(colores.getTexto());
|
||||||
|
text.setText(texto);
|
||||||
|
|
||||||
|
StackPane stackPane = new StackPane();
|
||||||
|
stackPane.getChildren().addAll(rectangle, text);
|
||||||
|
return stackPane;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Crear un animacion de transicion usando colores que cambian.
|
* Crear un animacion de transicion usando colores que cambian.
|
||||||
* @param rectangle Rectangle: El objeto que desea animar.
|
* @param rectangle Rectangle: El objeto que desea animar.
|
||||||
|
@ -3,10 +3,26 @@ package cl.cromer.estructuras;
|
|||||||
public class ListaEnlazada {
|
public class ListaEnlazada {
|
||||||
private Enlace lista;
|
private Enlace lista;
|
||||||
|
|
||||||
|
private int size;
|
||||||
|
|
||||||
|
private int tipo;
|
||||||
|
|
||||||
public ListaEnlazada() {
|
public ListaEnlazada() {
|
||||||
lista = null;
|
lista = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int size() {
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTipo() {
|
||||||
|
return tipo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTipo(int tipo) {
|
||||||
|
this.tipo = tipo;
|
||||||
|
}
|
||||||
|
|
||||||
public Enlace buscar(int llave) {
|
public Enlace buscar(int llave) {
|
||||||
if (this.lista != null) {
|
if (this.lista != null) {
|
||||||
// La lista no es vacia
|
// La lista no es vacia
|
||||||
@ -39,6 +55,7 @@ public class ListaEnlazada {
|
|||||||
nueva.setValor(valor);
|
nueva.setValor(valor);
|
||||||
nueva.setSiguente(lista);
|
nueva.setSiguente(lista);
|
||||||
lista = nueva;
|
lista = nueva;
|
||||||
|
size++;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -73,6 +90,7 @@ public class ListaEnlazada {
|
|||||||
// Sino cortar esta enlace de la lista
|
// Sino cortar esta enlace de la lista
|
||||||
previo.setSiguente(lista.getSiguente());
|
previo.setSiguente(lista.getSiguente());
|
||||||
}
|
}
|
||||||
|
size--;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -81,6 +99,26 @@ public class ListaEnlazada {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Devolver un enlace con su llave y valor.
|
||||||
|
* @param indice int: El indice que desea ver.
|
||||||
|
* @return Enlace: El enlace a devolver.
|
||||||
|
*/
|
||||||
|
public Enlace getIndice(int indice) {
|
||||||
|
if (lista != null && indice >= 0 && indice < size()) {
|
||||||
|
int i = size();
|
||||||
|
Enlace lista = this.lista;
|
||||||
|
while (i > indice + 1) {
|
||||||
|
lista = lista.getSiguente();
|
||||||
|
i--;
|
||||||
|
}
|
||||||
|
return lista;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Estructura de enlaces
|
// Estructura de enlaces
|
||||||
public class Enlace {
|
public class Enlace {
|
||||||
private int llave;
|
private int llave;
|
||||||
|
@ -6,6 +6,7 @@ import javafx.scene.Scene;
|
|||||||
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;
|
||||||
|
import javafx.scene.layout.HBox;
|
||||||
import javafx.scene.layout.VBox;
|
import javafx.scene.layout.VBox;
|
||||||
import javafx.scene.text.Text;
|
import javafx.scene.text.Text;
|
||||||
|
|
||||||
@ -20,14 +21,18 @@ import java.util.logging.Level;
|
|||||||
* @author Chris Cromer
|
* @author Chris Cromer
|
||||||
*/
|
*/
|
||||||
public class ListaEnlazdaController implements Initializable {
|
public class ListaEnlazdaController implements Initializable {
|
||||||
|
/**
|
||||||
|
* La caja para ingresar la llave.
|
||||||
|
*/
|
||||||
|
@FXML private TextFieldLimited llaveLista;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* La caja para ingresar textos.
|
* La caja para ingresar el valor.
|
||||||
*/
|
*/
|
||||||
@FXML private TextFieldLimited valorLista;
|
@FXML private TextFieldLimited valorLista;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Donde poner el contenido de array.
|
* Donde poner el contenido de lista.
|
||||||
*/
|
*/
|
||||||
@FXML private VBox contenidoLista;
|
@FXML private VBox contenidoLista;
|
||||||
|
|
||||||
@ -47,15 +52,25 @@ public class ListaEnlazdaController implements Initializable {
|
|||||||
private ResourceBundle resourceBundle;
|
private ResourceBundle resourceBundle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* El array usado en la aplicación.
|
* La lista enlazada usado en la aplicación.
|
||||||
*/
|
*/
|
||||||
private Array array;
|
private ListaEnlazada listaEnlazada;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Grafico rectangulos.
|
* Tipo de lista enlazada a trabajar.
|
||||||
|
*/
|
||||||
|
private ListaEnlazadaTipos listaEnlazadaTipos;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Grafico rectangulos y lineas.
|
||||||
*/
|
*/
|
||||||
private Grafico grafico;
|
private Grafico grafico;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Colores por los dibjos.
|
||||||
|
*/
|
||||||
|
private Colores colores;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Inicializar todos los datos y dibujar las graficas.
|
* Inicializar todos los datos y dibujar las graficas.
|
||||||
* @param location URL: El URL de fxml en uso.
|
* @param location URL: El URL de fxml en uso.
|
||||||
@ -66,21 +81,15 @@ public class ListaEnlazdaController implements Initializable {
|
|||||||
this.resourceBundle = resourceBundle;
|
this.resourceBundle = resourceBundle;
|
||||||
|
|
||||||
scene = null;
|
scene = null;
|
||||||
Colores colores = new Colores();
|
|
||||||
|
|
||||||
for (int i = 0; i < 10; i++) {
|
|
||||||
contenidoLista.getChildren().addAll(Grafico.crearCaja(colores, String.valueOf(i)));
|
|
||||||
colores.siguinteColor();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Llenar el array con numeros al azar.
|
* Llenar la lista con numeros al azar.
|
||||||
*/
|
*/
|
||||||
@FXML
|
@FXML
|
||||||
protected void botonLlenar() {
|
protected void botonLlenar() {
|
||||||
if (scene == null) {
|
if (scene == null) {
|
||||||
initializeArray();
|
initializeLista();
|
||||||
}
|
}
|
||||||
|
|
||||||
Random random = new Random();
|
Random random = new Random();
|
||||||
@ -88,66 +97,70 @@ public class ListaEnlazdaController implements Initializable {
|
|||||||
int minimo = 0;
|
int minimo = 0;
|
||||||
int rango = maximo - minimo + 1;
|
int rango = maximo - minimo + 1;
|
||||||
|
|
||||||
for (int i = array.size(); i < 10; i++) {
|
for (int i = listaEnlazada.size(); listaEnlazada.size() < 5; i++) {
|
||||||
int numero = random.nextInt(rango) + minimo;
|
int numero = random.nextInt(rango) + minimo;
|
||||||
while (array.buscar(numero) != -1) {
|
while (listaEnlazada.buscar(i) != null) {
|
||||||
numero = random.nextInt(rango) + minimo;
|
i++;
|
||||||
}
|
}
|
||||||
array.insertar(numero);
|
listaEnlazada.insertar(i, numero);
|
||||||
}
|
}
|
||||||
generarGrafico();
|
generarGrafico();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Vaciar el array de todos los valores.
|
* Vaciar la lista de todos los valores.
|
||||||
*/
|
*/
|
||||||
@FXML
|
@FXML
|
||||||
protected void botonVaciar() {
|
protected void botonVaciar() {
|
||||||
if (scene == null) {
|
if (scene == null) {
|
||||||
initializeArray();
|
initializeLista();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (array.isOrdered()) {
|
listaEnlazada = new ListaEnlazada();
|
||||||
array = new Array(10);
|
|
||||||
array.setOrdered(true);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
array = new Array(10);
|
|
||||||
array.setOrdered(false);
|
|
||||||
}
|
|
||||||
generarGrafico();
|
generarGrafico();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Insertar un valor al array y mostrar el codigo en la pantalla.
|
* Insertar un valor a la lista y mostrar el codigo en la pantalla.
|
||||||
*/
|
*/
|
||||||
@FXML
|
@FXML
|
||||||
protected void botonInsertar() {
|
protected void botonInsertar() {
|
||||||
if (scene == null) {
|
if (scene == null) {
|
||||||
initializeArray();
|
initializeLista();
|
||||||
|
}
|
||||||
|
|
||||||
|
String tipo;
|
||||||
|
switch (listaEnlazadaTipos.getTipo()) {
|
||||||
|
case ListaEnlazadaTipos.SIMPLE:
|
||||||
|
tipo = "Simple";
|
||||||
|
break;
|
||||||
|
case ListaEnlazadaTipos.CIRCULAR:
|
||||||
|
tipo = "Circular";
|
||||||
|
break;
|
||||||
|
case ListaEnlazadaTipos.DOBLEMENTE_ENLAZADA:
|
||||||
|
tipo = "Doblemente";
|
||||||
|
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 + "/insertar")).useDelimiter("\\Z").next();
|
||||||
String codigoTexto = new Scanner(getClass().getResourceAsStream("/cl/cromer/estructuras/code/array" + tipo + "/insertar")).useDelimiter("\\Z").next();
|
//codigoLista.setText(codigoTexto);
|
||||||
codigoLista.setText(codigoTexto);
|
|
||||||
|
|
||||||
if (valorLista.getText() != null && !valorLista.getText().trim().equals("")) {
|
if (llaveLista.getText() != null && !llaveLista.getText().trim().equals("") && valorLista.getText() != null && !valorLista.getText().trim().equals("")) {
|
||||||
try {
|
try {
|
||||||
boolean exito = array.insertar(Integer.valueOf(valorLista.getText()));
|
boolean exito = listaEnlazada.insertar(Integer.valueOf(llaveLista.getText()), Integer.valueOf(valorLista.getText()));
|
||||||
if (exito) {
|
if (exito) {
|
||||||
|
llaveLista.setText("");
|
||||||
|
valorLista.setText("");
|
||||||
generarGrafico();
|
generarGrafico();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
ButtonType botonCerrar = new ButtonType(resourceBundle.getString("cerrar"), ButtonBar.ButtonData.OK_DONE);
|
ButtonType botonCerrar = new ButtonType(resourceBundle.getString("cerrar"), ButtonBar.ButtonData.OK_DONE);
|
||||||
Dialog<String> dialog = new Dialog<>();
|
Dialog<String> dialog = new Dialog<>();
|
||||||
dialog.setTitle(resourceBundle.getString("error"));
|
dialog.setTitle(resourceBundle.getString("error"));
|
||||||
if (array.size() == 10) {
|
dialog.setContentText(resourceBundle.getString("listaLlaveExiste"));
|
||||||
dialog.setContentText(resourceBundle.getString("arrayLleno"));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
dialog.setContentText(resourceBundle.getString("arrayValorExiste"));
|
|
||||||
}
|
|
||||||
dialog.getDialogPane().getButtonTypes().add(botonCerrar);
|
dialog.getDialogPane().getButtonTypes().add(botonCerrar);
|
||||||
dialog.show();
|
dialog.show();
|
||||||
}
|
}
|
||||||
@ -164,23 +177,25 @@ public class ListaEnlazdaController implements Initializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Eliminar un valor del array si existe y mostrar el codigo en la pantalla.
|
* Eliminar un valor de la lista si existe y mostrar el codigo en la pantalla.
|
||||||
*/
|
*/
|
||||||
@FXML
|
@FXML
|
||||||
protected void botonEliminar() {
|
protected void botonEliminar() {
|
||||||
if (scene == null) {
|
if (scene == null) {
|
||||||
initializeArray();
|
initializeLista();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mostrar el codigo
|
// Mostrar el codigo
|
||||||
String tipo = (array.isOrdered())?"Ordenado":"Simple";
|
//String tipo = (array.isOrdered())?"Ordenado":"Simple";
|
||||||
String codigoTexto = new Scanner(getClass().getResourceAsStream("/cl/cromer/estructuras/code/array" + 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 (llaveLista.getText() != null && !llaveLista.getText().trim().equals("")) {
|
||||||
boolean exito = array.eliminar(Integer.valueOf(valorLista.getText()));
|
boolean exito = listaEnlazada.eliminar(Integer.valueOf(llaveLista.getText()));
|
||||||
if (exito) {
|
if (exito) {
|
||||||
|
llaveLista.setText("");
|
||||||
|
valorLista.setText("");
|
||||||
generarGrafico();
|
generarGrafico();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -199,27 +214,27 @@ public class ListaEnlazdaController implements Initializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Buscar si existe un elemento en el array y mostrar el codigo en la pantalla
|
* Buscar si existe una llave en la lista y mostrar el codigo en la pantalla
|
||||||
* Si existe el valor destacarlo.
|
* Si existe la llave destacarla.
|
||||||
*/
|
*/
|
||||||
@FXML
|
@FXML
|
||||||
protected void botonBuscar() {
|
protected void botonBuscar() {
|
||||||
if (scene == null) {
|
if (scene == null) {
|
||||||
initializeArray();
|
initializeLista();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mostrar el codigo
|
// Mostrar el codigo
|
||||||
String tipo = (array.isOrdered())?"Ordenado":"Simple";
|
//String tipo = (array.isOrdered())?"Ordenado":"Simple";
|
||||||
String codigoTexto = new Scanner(getClass().getResourceAsStream("/cl/cromer/estructuras/code/array" + 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 (llaveLista.getText() != null && !llaveLista.getText().trim().equals("")) {
|
||||||
int encontrado = array.buscar(Integer.valueOf(valorLista.getText()));
|
ListaEnlazada.Enlace enlace = listaEnlazada.buscar(Integer.valueOf(llaveLista.getText()));
|
||||||
if (encontrado != -1) {
|
if (enlace != null) {
|
||||||
generarGrafico();
|
generarGrafico();
|
||||||
grafico = new Grafico(scene);
|
grafico = new Grafico(scene);
|
||||||
grafico.destacer(encontrado, Grafico.RECTANGULO);
|
grafico.destacer(enlace.getLlave(), Grafico.RECTANGULO);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
errorNoEsta();
|
errorNoEsta();
|
||||||
@ -237,38 +252,37 @@ public class ListaEnlazdaController implements Initializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Se muestra un error si la persona no ingresa un valor en el TextField.
|
* Se muestra un error si la persona no ingresa un valor y una llave en los TextField.
|
||||||
*/
|
*/
|
||||||
private void errorNoValor() {
|
private void errorNoValor() {
|
||||||
ButtonType botonCerrar = new ButtonType(resourceBundle.getString("cerrar"), ButtonBar.ButtonData.OK_DONE);
|
ButtonType botonCerrar = new ButtonType(resourceBundle.getString("cerrar"), ButtonBar.ButtonData.OK_DONE);
|
||||||
Dialog<String> dialog = new Dialog<>();
|
Dialog<String> dialog = new Dialog<>();
|
||||||
dialog.setTitle(resourceBundle.getString("error"));
|
dialog.setTitle(resourceBundle.getString("error"));
|
||||||
dialog.setContentText(resourceBundle.getString("arrayNoValor"));
|
dialog.setContentText(resourceBundle.getString("listaNoValor"));
|
||||||
dialog.getDialogPane().getButtonTypes().add(botonCerrar);
|
dialog.getDialogPane().getButtonTypes().add(botonCerrar);
|
||||||
dialog.show();
|
dialog.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Error cuando el valor no está en el array.
|
* Error cuando la llave no está en la lista.
|
||||||
*/
|
*/
|
||||||
private void errorNoEsta() {
|
private void errorNoEsta() {
|
||||||
ButtonType botonCerrar = new ButtonType(resourceBundle.getString("cerrar"), ButtonBar.ButtonData.OK_DONE);
|
ButtonType botonCerrar = new ButtonType(resourceBundle.getString("cerrar"), ButtonBar.ButtonData.OK_DONE);
|
||||||
Dialog<String> dialog = new Dialog<>();
|
Dialog<String> dialog = new Dialog<>();
|
||||||
dialog.setTitle(resourceBundle.getString("error"));
|
dialog.setTitle(resourceBundle.getString("error"));
|
||||||
dialog.setContentText(resourceBundle.getString("arrayNoEsta"));
|
dialog.setContentText(resourceBundle.getString("listaNoEsta"));
|
||||||
dialog.getDialogPane().getButtonTypes().add(botonCerrar);
|
dialog.getDialogPane().getButtonTypes().add(botonCerrar);
|
||||||
dialog.show();
|
dialog.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Crear el array de tamaño 10. La scene está usado para saber si es de tipo ordenado o simple segun el ménu.
|
* Crear una lista vacia.
|
||||||
*/
|
*/
|
||||||
private void initializeArray() {
|
private void initializeLista() {
|
||||||
scene = contenidoLista.getScene();
|
scene = contenidoLista.getScene();
|
||||||
grafico = new Grafico(scene);
|
grafico = new Grafico(scene);
|
||||||
this.array = new Array(10);
|
this.listaEnlazada = new ListaEnlazada();
|
||||||
Array array = (Array) scene.getUserData();
|
listaEnlazadaTipos = (ListaEnlazadaTipos) scene.getUserData();
|
||||||
this.array.setOrdered(array.isOrdered());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -276,9 +290,12 @@ public class ListaEnlazdaController implements Initializable {
|
|||||||
*/
|
*/
|
||||||
private void generarGrafico() {
|
private void generarGrafico() {
|
||||||
grafico.removerDestacar();
|
grafico.removerDestacar();
|
||||||
for (int i = 0; i < 10; i++) {
|
colores = new Colores();
|
||||||
Text text = (Text) scene.lookup("#caja_" + String.valueOf(i));
|
contenidoLista.getChildren().clear();
|
||||||
text.setText(array.getIndice(i));
|
for (int i = 0; i < listaEnlazada.size(); i++) {
|
||||||
|
ListaEnlazada.Enlace enlace = listaEnlazada.getIndice(i);
|
||||||
|
contenidoLista.getChildren().addAll(Grafico.crearCaja(colores, String.valueOf(enlace.getLlave()), String.valueOf(enlace.getLlave()) + " | " + String.valueOf(enlace.getValor()), 50), Grafico.crearLineaVertical());
|
||||||
|
colores.siguinteColor();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -129,6 +129,7 @@ public class PilaController implements Initializable {
|
|||||||
try {
|
try {
|
||||||
if (pila.size() < 10) {
|
if (pila.size() < 10) {
|
||||||
pila.push(Integer.valueOf(valorPila.getText()));
|
pila.push(Integer.valueOf(valorPila.getText()));
|
||||||
|
valorPila.setText("");
|
||||||
generarGrafico();
|
generarGrafico();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -56,6 +56,8 @@ cancelar=Cancel
|
|||||||
cerrar=Close
|
cerrar=Close
|
||||||
error=Error
|
error=Error
|
||||||
|
|
||||||
|
llave=Key:
|
||||||
|
valor=Value:
|
||||||
llenar=Fill
|
llenar=Fill
|
||||||
vaciar=Empty
|
vaciar=Empty
|
||||||
insertar=Insert
|
insertar=Insert
|
||||||
@ -85,6 +87,10 @@ quickYaOrdenado=The array is already sorted.
|
|||||||
|
|
||||||
mergeYaOrdenado=The array is already sorted.
|
mergeYaOrdenado=The array is already sorted.
|
||||||
|
|
||||||
|
listaLlaveExiste=Key already exists.
|
||||||
|
listaNoEsta=Key does not exist.
|
||||||
|
listaNoValor=Please input a numeric key and value.
|
||||||
|
|
||||||
pilaLlena=Value not inserted because the stack is full.
|
pilaLlena=Value not inserted because the stack is full.
|
||||||
pilaVacia=The stack is empty.
|
pilaVacia=The stack is empty.
|
||||||
pilaNoValor=Please input a numeric value.
|
pilaNoValor=Please input a numeric value.
|
||||||
|
@ -56,6 +56,8 @@ cancelar=Cancelar
|
|||||||
cerrar=Cerrar
|
cerrar=Cerrar
|
||||||
error=Error
|
error=Error
|
||||||
|
|
||||||
|
llave=Llave:
|
||||||
|
valor=Valor:
|
||||||
vaciar=Vaciar
|
vaciar=Vaciar
|
||||||
llenar=Llenar
|
llenar=Llenar
|
||||||
insertar=Insertar
|
insertar=Insertar
|
||||||
@ -85,6 +87,10 @@ quickYaOrdenado=El array ya est\u00E1 ordenado.
|
|||||||
|
|
||||||
mergeYaOrdenado=El array ya est\u00E1 ordenado.
|
mergeYaOrdenado=El array ya est\u00E1 ordenado.
|
||||||
|
|
||||||
|
listaLlaveExiste=La llave ya existe.
|
||||||
|
listaNoEsta=La llave no existe.
|
||||||
|
listaNoValor=Ingresar una llave y valor num\u00E9ricos por favor.
|
||||||
|
|
||||||
pilaLlena=Valor no fue insertado porque la pila est\u00E1 llena.
|
pilaLlena=Valor no fue insertado porque la pila est\u00E1 llena.
|
||||||
pilaVacia=La pila est\u00E1 vac\u00EDa.
|
pilaVacia=La pila est\u00E1 vac\u00EDa.
|
||||||
pilaNoValor=Ingresar un valor num\u00E9rico por favor.
|
pilaNoValor=Ingresar un valor num\u00E9rico por favor.
|
||||||
|
@ -18,7 +18,10 @@
|
|||||||
<Button text="%insertar" onAction="#botonInsertar" />
|
<Button text="%insertar" onAction="#botonInsertar" />
|
||||||
<Button text="%eliminar" onAction="#botonEliminar" />
|
<Button text="%eliminar" onAction="#botonEliminar" />
|
||||||
<Button text="%buscar" onAction="#botonBuscar" />
|
<Button text="%buscar" onAction="#botonBuscar" />
|
||||||
<TextFieldLimited fx:id="valorLista" maxLength="3" prefWidth="50" />
|
<Text text="%llave" />
|
||||||
|
<TextFieldLimited fx:id="llaveLista" maxLength="2" prefWidth="40" />
|
||||||
|
<Text text="%valor" />
|
||||||
|
<TextFieldLimited fx:id="valorLista" maxLength="2" prefWidth="40" />
|
||||||
</HBox>
|
</HBox>
|
||||||
<VBox fx:id="contenidoLista" alignment="CENTER" />
|
<VBox fx:id="contenidoLista" alignment="CENTER" />
|
||||||
</VBox>
|
</VBox>
|
||||||
|
Loading…
Reference in New Issue
Block a user