Browse Source

Changed indentations.

master
Chris Cromer 5 years ago
parent
commit
4cc0349ffe
  1. 12
      src/cl/cromer/estructuras/ArrayController.java
  2. 75
      src/cl/cromer/estructuras/ArrayTipos.java
  3. 8
      src/cl/cromer/estructuras/BurbujaController.java
  4. 211
      src/cl/cromer/estructuras/Cola.java
  5. 372
      src/cl/cromer/estructuras/ColaController.java
  6. 158
      src/cl/cromer/estructuras/Colores.java
  7. 72
      src/cl/cromer/estructuras/Enlace.java
  8. 122
      src/cl/cromer/estructuras/EnlaceCircular.java
  9. 134
      src/cl/cromer/estructuras/EnlaceNormal.java
  10. 214
      src/cl/cromer/estructuras/HashTable.java
  11. 92
      src/cl/cromer/estructuras/HashTableController.java
  12. 8
      src/cl/cromer/estructuras/InsercionController.java
  13. 320
      src/cl/cromer/estructuras/ListaEnlazada.java
  14. 363
      src/cl/cromer/estructuras/ListaEnlazadaCircular.java
  15. 90
      src/cl/cromer/estructuras/ListaEnlazadaTipos.java
  16. 12
      src/cl/cromer/estructuras/ListaEnlazdaController.java
  17. 72
      src/cl/cromer/estructuras/Logs.java
  18. 136
      src/cl/cromer/estructuras/Main.java
  19. 696
      src/cl/cromer/estructuras/MenuController.java
  20. 8
      src/cl/cromer/estructuras/MergeController.java
  21. 110
      src/cl/cromer/estructuras/Palabras.java
  22. 209
      src/cl/cromer/estructuras/Pila.java
  23. 372
      src/cl/cromer/estructuras/PilaController.java
  24. 8
      src/cl/cromer/estructuras/QuickController.java
  25. 220
      src/cl/cromer/estructuras/SeleccionController.java
  26. 220
      src/cl/cromer/estructuras/ShellController.java
  27. 286
      src/cl/cromer/estructuras/TextFieldLimited.java
  28. 16
      src/cl/cromer/estructuras/code/arrayOrdenado/buscar
  29. 32
      src/cl/cromer/estructuras/code/arrayOrdenado/eliminar
  30. 22
      src/cl/cromer/estructuras/code/arrayOrdenado/insertar
  31. 16
      src/cl/cromer/estructuras/code/arraySimple/buscar
  32. 20
      src/cl/cromer/estructuras/code/arraySimple/eliminar
  33. 22
      src/cl/cromer/estructuras/code/arraySimple/insertar
  34. 22
      src/cl/cromer/estructuras/code/burbuja/ordenar
  35. 4
      src/cl/cromer/estructuras/code/cola/peek
  36. 8
      src/cl/cromer/estructuras/code/cola/pop
  37. 8
      src/cl/cromer/estructuras/code/cola/push
  38. 24
      src/cl/cromer/estructuras/code/insercion/ordenar
  39. 74
      src/cl/cromer/estructuras/code/listaEnlazadaCircular/buscar
  40. 92
      src/cl/cromer/estructuras/code/listaEnlazadaCircular/eliminar
  41. 56
      src/cl/cromer/estructuras/code/listaEnlazadaCircular/insertar
  42. 86
      src/cl/cromer/estructuras/code/listaEnlazadaDoble/buscar
  43. 104
      src/cl/cromer/estructuras/code/listaEnlazadaDoble/eliminar
  44. 64
      src/cl/cromer/estructuras/code/listaEnlazadaDoble/insertar
  45. 72
      src/cl/cromer/estructuras/code/listaEnlazadaSimple/buscar
  46. 84
      src/cl/cromer/estructuras/code/listaEnlazadaSimple/eliminar
  47. 42
      src/cl/cromer/estructuras/code/listaEnlazadaSimple/insertar
  48. 76
      src/cl/cromer/estructuras/code/merge/ordenar
  49. 4
      src/cl/cromer/estructuras/code/pila/peek
  50. 8
      src/cl/cromer/estructuras/code/pila/pop
  51. 8
      src/cl/cromer/estructuras/code/pila/push
  52. 72
      src/cl/cromer/estructuras/code/quick/ordenar
  53. 22
      src/cl/cromer/estructuras/code/seleccion/ordenar
  54. 42
      src/cl/cromer/estructuras/code/shell/ordenar

12
src/cl/cromer/estructuras/ArrayController.java

@ -59,7 +59,7 @@ public class ArrayController implements Initializable {
/**
* 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.
* @param resourceBundle ResourceBundle: Tiene datos de idioma.
*/
@Override
@ -146,7 +146,7 @@ public class ArrayController implements Initializable {
String codigoTexto = new Scanner(getClass().getResourceAsStream("/cl/cromer/estructuras/code/array" + tipo + "/insertar")).useDelimiter("\\Z").next();
codigoArray.setText(codigoTexto);
if (valorArray.getText() != null && !valorArray.getText().trim().equals("")) {
if (valorArray.getText() != null && ! valorArray.getText().trim().equals("")) {
try {
boolean exito = array.insertar(Integer.valueOf(valorArray.getText()));
if (exito) {
@ -188,7 +188,7 @@ public class ArrayController implements Initializable {
codigoArray.setText(codigoTexto);
try {
if (valorArray.getText() != null && !valorArray.getText().trim().equals("")) {
if (valorArray.getText() != null && ! valorArray.getText().trim().equals("")) {
boolean exito = array.eliminar(Integer.valueOf(valorArray.getText()));
if (exito) {
valorArray.setText("");
@ -225,9 +225,9 @@ public class ArrayController implements Initializable {
codigoArray.setText(codigoTexto);
try {
if (valorArray.getText() != null && !valorArray.getText().trim().equals("")) {
if (valorArray.getText() != null && ! valorArray.getText().trim().equals("")) {
int encontrado = array.buscar(Integer.valueOf(valorArray.getText()));
if (encontrado != -1) {
if (encontrado != - 1) {
generarGrafico();
grafico = new Grafico(scene);
grafico.destacar("#caja_" + encontrado, Grafico.RECTANGULO);
@ -246,5 +246,5 @@ public class ArrayController implements Initializable {
Logs.log(Level.WARNING, "No es tipo int.");
Main.mostrarError(resourceBundle.getString("arrayNoValor"), resourceBundle);
}
}
}
}

75
src/cl/cromer/estructuras/ArrayTipos.java

@ -6,44 +6,45 @@ package cl.cromer.estructuras;
* @author Chris Cromer
*/
final public class ArrayTipos {
/**
* Tipo de array simple.
*/
static final public int SIMPLE = 0;
/**
* Tipo de array ordenado.
*/
static final public int ORDENADO = 1;
/**
* Tipo de array simple.
*/
static final public int SIMPLE = 0;
/**
* El tipo que está elegido.
*/
final private int tipo;
/**
* Tipo de array ordenado.
*/
static final public int ORDENADO = 1;
/**
* Inicilizar el tipo.
*
* @param tipo int: Tipo de array, {@value #SIMPLE} o {@value #ORDENADO}
*/
public ArrayTipos(int tipo) {
switch (tipo) {
case SIMPLE:
this.tipo = SIMPLE;
break;
case ORDENADO:
this.tipo = ORDENADO;
break;
default:
this.tipo = SIMPLE;
}
}
/**
* El tipo que está elegido.
*/
final private int tipo;
/**
* Devolver el tipo.
*
* @return int: El tipo de array.
*/
public int getTipo() {
return tipo;
}
/**
* Inicilizar el tipo.
*
* @param tipo int: Tipo de array, {@value #SIMPLE} o {@value #ORDENADO}
*/
public ArrayTipos(int tipo) {
switch (tipo) {
case SIMPLE:
this.tipo = SIMPLE;
break;
case ORDENADO:
this.tipo = ORDENADO;
break;
default:
this.tipo = SIMPLE;
}
}
/**
* Devolver el tipo.
*
* @return int: El tipo de array.
*/
public int getTipo() {
return tipo;
}
}

8
src/cl/cromer/estructuras/BurbujaController.java

@ -46,7 +46,7 @@ public class BurbujaController implements Initializable {
/**
* 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.
* @param resourceBundle ResourceBundle: Tiene datos de idioma.
*/
@Override
@ -112,7 +112,7 @@ public class BurbujaController implements Initializable {
String codigoTexto = new Scanner(getClass().getResourceAsStream("/cl/cromer/estructuras/code/burbuja/ordenar")).useDelimiter("\\Z").next();
codigoBurbuja.setText(codigoTexto);
if (!array.burbuja(true)) {
if (! array.burbuja(true)) {
Main.mostrarError(resourceBundle.getString("burbujaYaOrdenado"), resourceBundle);
}
@ -132,10 +132,10 @@ public class BurbujaController implements Initializable {
String codigoTexto = new Scanner(getClass().getResourceAsStream("/cl/cromer/estructuras/code/burbuja/ordenar")).useDelimiter("\\Z").next();
codigoBurbuja.setText(codigoTexto);
if (!array.burbuja(false)) {
if (! array.burbuja(false)) {
Main.mostrarError(resourceBundle.getString("burbujaYaOrdenado"), resourceBundle);
}
generarGrafico();
generarGrafico();
}
}

211
src/cl/cromer/estructuras/Cola.java

@ -8,118 +8,119 @@ import java.util.Random;
* @author Chris Cromer
*/
final public class Cola {
/**
* La cola.
*/
private String cola[];
/**
* La cola.
*/
private String cola[];
/**
* La cantidad de elementos que están en la cola.
*/
private int size;
/**
* La cantidad de elementos que están en la cola.
*/
private int size;
/**
* Inicializar.
*/
public Cola() {
this.cola = null;
size = 0;
}
/**
* Inicializar.
*/
public Cola() {
this.cola = null;
size = 0;
}
/**
* Pop un valor del principio de la cola.
*
* @return boolean: Verdad si fue exitoso.
*/
public boolean pop() {
if (this.cola != null) {
String cola[] = new String[this.cola.length - 1];
// Nueva array sin el valor del primer
System.arraycopy(this.cola, 1, cola, 0, cola.length);
this.cola = cola;
size--;
return true;
}
else {
return false;
}
}
/**
* Pop un valor del principio de la cola.
*
* @return boolean: Verdad si fue exitoso.
*/
public boolean pop() {
if (this.cola != null) {
String cola[] = new String[this.cola.length - 1];
// Nueva array sin el valor del primer
System.arraycopy(this.cola, 1, cola, 0, cola.length);
this.cola = cola;
size--;
return true;
}
else {
return false;
}
}
/**
* Peek al valor que está al principio de la cola.
*
* @return int: El valor que está al principio de la cola.
*/
public int peek() {
if (this.cola != null && size() > 0) {
return Integer.valueOf(cola[0]);
}
else {
return Integer.MIN_VALUE;
}
}
/**
* Peek al valor que está al principio de la cola.
*
* @return int: El valor que está al principio de la cola.
*/
public int peek() {
if (this.cola != null && size() > 0) {
return Integer.valueOf(cola[0]);
}
else {
return Integer.MIN_VALUE;
}
}
/**
* Devolver la cantidad de elementos que están en la cola.
*
* @return int: La cantidad de elementos.
*/
public int size() {
return size;
}
/**
* Devolver la cantidad de elementos que están en la cola.
*
* @return int: La cantidad de elementos.
*/
public int size() {
return size;
}
/**
* Devolver el valor que está en un indice de la cola.
*
* @param indice int: El indice que desea devolver.
* @return String: El valor que está guardado en el indice.
*/
public String getIndice(int indice) {
if (cola != null && indice >= 0 && indice < cola.length) {
return cola[indice];
}
else {
return null;
}
}
/**
* Devolver el valor que está en un indice de la cola.
*
* @param indice int: El indice que desea devolver.
*
* @return String: El valor que está guardado en el indice.
*/
public String getIndice(int indice) {
if (cola != null && indice >= 0 && indice < cola.length) {
return cola[indice];
}
else {
return null;
}
}
/**
* Llenar la cola con valores al azar.
*/
@SuppressWarnings("Duplicates")
public void llenar() {
Random random = new Random();
int maximo = 99;
int minimo = 0;
int rango = maximo - minimo + 1;
/**
* Llenar la cola con valores al azar.
*/
@SuppressWarnings("Duplicates")
public void llenar() {
Random random = new Random();
int maximo = 99;
int minimo = 0;
int rango = maximo - minimo + 1;
for (int i = size(); i < 10; i++) {
int numero = random.nextInt(rango) + minimo;
push(numero);
}
}
for (int i = size(); i < 10; i++) {
int numero = random.nextInt(rango) + minimo;
push(numero);
}
}
/**
* Push un valor en la cola encima.
*
* @param valor int: El valor a push.
*/
public void push(int valor) {
if (this.cola != null) {
String cola[] = new String[this.cola.length + 1];
int i;
for (i = 0; i < this.cola.length; i++) {
cola[i] = this.cola[i];
}
cola[i] = String.valueOf(valor);
this.cola = cola;
size++;
}
else {
String pila[] = new String[1];
pila[0] = String.valueOf(valor);
this.cola = pila;
size++;
}
}
/**
* Push un valor en la cola encima.
*
* @param valor int: El valor a push.
*/
public void push(int valor) {
if (this.cola != null) {
String cola[] = new String[this.cola.length + 1];
int i;
for (i = 0; i < this.cola.length; i++) {
cola[i] = this.cola[i];
}
cola[i] = String.valueOf(valor);
this.cola = cola;
size++;
}
else {
String pila[] = new String[1];
pila[0] = String.valueOf(valor);
this.cola = pila;
size++;
}
}
}

372
src/cl/cromer/estructuras/ColaController.java

@ -17,190 +17,190 @@ import java.util.logging.Level;
* @author Chris Cromer
*/
public class ColaController implements Initializable {
/**
* La caja para ingresar textos.
*/
@FXML
private TextFieldLimited valorCola;
/**
* Donde poner el contenido de array.
*/
@FXML
private VBox contenidoCola;
/**
* Donde va el codigo a mostrar a la pantalla.
*/
@FXML
private Text codigoCola;
/**
* La escena donde está cosas graficas.
*/
private Scene scene;
/**
* Donde está guardado los idiomas.
*/
private ResourceBundle resourceBundle;
/**
* La cola usado en la aplicación.
*/
private Cola cola;
/**
* Grafico rectangulos.
*/
private Grafico grafico;
/**
* Inicializar todos los datos y dibujar las graficas.
*
* @param location URL: El URL de fxml en uso.
* @param resourceBundle ResourceBundle: Tiene datos de idioma.
*/
@Override
public void initialize(URL location, ResourceBundle resourceBundle) {
this.resourceBundle = resourceBundle;
cola = new Cola();
scene = null;
Colores colores = new Colores();
for (int i = 9; i >= 0; i--) {
contenidoCola.getChildren().addAll(Grafico.crearCaja(colores, String.valueOf(i)));
colores.siguinteColor();
}
}
/**
* Llenar la cola con numeros al azar.
*/
@FXML
protected void botonLlenar() {
if (scene == null) {
scene = contenidoCola.getScene();
grafico = new Grafico(scene);
}
cola.llenar();
generarGrafico();
}
/**
* Poner los valores en el grafico.
*/
private void generarGrafico() {
grafico.removerDestacar();
for (int i = 0; i < 10; i++) {
Text text = (Text) scene.lookup("#texto_" + String.valueOf(i));
text.setText(cola.getIndice(i));
}
}
/**
* Vaciar la cola de todos los valores.
*/
@FXML
protected void botonVaciar() {
if (scene == null) {
scene = contenidoCola.getScene();
grafico = new Grafico(scene);
}
cola = new Cola();
generarGrafico();
}
/**
* Push un valor a la cola y mostrar el codigo en la pantalla.
*/
@FXML
protected void botonPush() {
if (scene == null) {
scene = contenidoCola.getScene();
grafico = new Grafico(scene);
}
// Mostrar el codigo
String codigoTexto = new Scanner(getClass().getResourceAsStream("/cl/cromer/estructuras/code/cola/push")).useDelimiter("\\Z").next();
codigoCola.setText(codigoTexto);
if (valorCola.getText() != null && !valorCola.getText().trim().equals("")) {
try {
if (cola.size() < 10) {
cola.push(Integer.valueOf(valorCola.getText()));
valorCola.setText("");
generarGrafico();
}
else {
Main.mostrarError(resourceBundle.getString("colaLlena"), resourceBundle);
}
}
catch (NumberFormatException exception) {
// El error no es fatal, sigue
Logs.log(Level.WARNING, "No es tipo int.");
Main.mostrarError(resourceBundle.getString("colaNoValor"), resourceBundle);
}
}
else {
Main.mostrarError(resourceBundle.getString("colaNoValor"), resourceBundle);
}
}
/**
* Pop un valor de la pila si existe y mostrar el codigo en la pantalla.
*/
@FXML
protected void botonPop() {
if (scene == null) {
scene = contenidoCola.getScene();
grafico = new Grafico(scene);
}
// Mostrar el codigo
String codigoTexto = new Scanner(getClass().getResourceAsStream("/cl/cromer/estructuras/code/cola/pop")).useDelimiter("\\Z").next();
codigoCola.setText(codigoTexto);
if (cola.size() > 0) {
if (!cola.pop()) {
Main.mostrarError(resourceBundle.getString("colaVacia"), resourceBundle);
}
else {
generarGrafico();
}
}
else {
Main.mostrarError(resourceBundle.getString("colaVacia"), resourceBundle);
}
}
/**
* Peek a ver si existe un elemento en la pila y mostrar el codigo en la pantalla
* Si existe un valor destacarlo.
*/
@FXML
protected void botonPeek() {
if (scene == null) {
scene = contenidoCola.getScene();
grafico = new Grafico(scene);
}
// Mostrar el codigo
String codigoTexto = new Scanner(getClass().getResourceAsStream("/cl/cromer/estructuras/code/cola/peek")).useDelimiter("\\Z").next();
codigoCola.setText(codigoTexto);
int encontrado = cola.peek();
if (encontrado != Integer.MIN_VALUE) {
generarGrafico();
grafico.destacar("#caja_" + 0, Grafico.RECTANGULO);
grafico.destacar("#texto_" + 0, Grafico.TEXTO);
}
else {
Main.mostrarError(resourceBundle.getString("colaVacia"), resourceBundle);
}
}
/**
* La caja para ingresar textos.
*/
@FXML
private TextFieldLimited valorCola;
/**
* Donde poner el contenido de array.
*/
@FXML
private VBox contenidoCola;
/**
* Donde va el codigo a mostrar a la pantalla.
*/
@FXML
private Text codigoCola;
/**
* La escena donde está cosas graficas.
*/
private Scene scene;
/**
* Donde está guardado los idiomas.
*/
private ResourceBundle resourceBundle;
/**
* La cola usado en la aplicación.
*/
private Cola cola;
/**
* Grafico rectangulos.
*/
private Grafico grafico;
/**
* Inicializar todos los datos y dibujar las graficas.
*
* @param location URL: El URL de fxml en uso.
* @param resourceBundle ResourceBundle: Tiene datos de idioma.
*/
@Override
public void initialize(URL location, ResourceBundle resourceBundle) {
this.resourceBundle = resourceBundle;
cola = new Cola();
scene = null;
Colores colores = new Colores();
for (int i = 9; i >= 0; i--) {
contenidoCola.getChildren().addAll(Grafico.crearCaja(colores, String.valueOf(i)));
colores.siguinteColor();
}
}
/**
* Llenar la cola con numeros al azar.
*/
@FXML
protected void botonLlenar() {
if (scene == null) {
scene = contenidoCola.getScene();
grafico = new Grafico(scene);
}
cola.llenar();
generarGrafico();
}
/**
* Poner los valores en el grafico.
*/
private void generarGrafico() {
grafico.removerDestacar();
for (int i = 0; i < 10; i++) {
Text text = (Text) scene.lookup("#texto_" + String.valueOf(i));
text.setText(cola.getIndice(i));
}
}
/**
* Vaciar la cola de todos los valores.
*/
@FXML
protected void botonVaciar() {
if (scene == null) {
scene = contenidoCola.getScene();
grafico = new Grafico(scene);
}
cola = new Cola();
generarGrafico();
}
/**
* Push un valor a la cola y mostrar el codigo en la pantalla.
*/
@FXML
protected void botonPush() {
if (scene == null) {
scene = contenidoCola.getScene();
grafico = new Grafico(scene);
}
// Mostrar el codigo
String codigoTexto = new Scanner(getClass().getResourceAsStream("/cl/cromer/estructuras/code/cola/push")).useDelimiter("\\Z").next();
codigoCola.setText(codigoTexto);
if (valorCola.getText() != null && ! valorCola.getText().trim().equals("")) {
try {
if (cola.size() < 10) {
cola.push(Integer.valueOf(valorCola.getText()));
valorCola.setText("");
generarGrafico();
}
else {
Main.mostrarError(resourceBundle.getString("colaLlena"), resourceBundle);
}
}
catch (NumberFormatException exception) {
// El error no es fatal, sigue
Logs.log(Level.WARNING, "No es tipo int.");
Main.mostrarError(resourceBundle.getString("colaNoValor"), resourceBundle);
}
}
else {
Main.mostrarError(resourceBundle.getString("colaNoValor"), resourceBundle);
}
}
/**
* Pop un valor de la pila si existe y mostrar el codigo en la pantalla.
*/
@FXML
protected void botonPop() {
if (scene == null) {
scene = contenidoCola.getScene();
grafico = new Grafico(scene);
}
// Mostrar el codigo
String codigoTexto = new Scanner(getClass().getResourceAsStream("/cl/cromer/estructuras/code/cola/pop")).useDelimiter("\\Z").next();
codigoCola.setText(codigoTexto);
if (cola.size() > 0) {
if (! cola.pop()) {
Main.mostrarError(resourceBundle.getString("colaVacia"), resourceBundle);
}
else {
generarGrafico();
}
}
else {
Main.mostrarError(resourceBundle.getString("colaVacia"), resourceBundle);
}
}
/**
* Peek a ver si existe un elemento en la pila y mostrar el codigo en la pantalla
* Si existe un valor destacarlo.
*/
@FXML
protected void botonPeek() {
if (scene == null) {
scene = contenidoCola.getScene();
grafico = new Grafico(scene);
}
// Mostrar el codigo
String codigoTexto = new Scanner(getClass().getResourceAsStream("/cl/cromer/estructuras/code/cola/peek")).useDelimiter("\\Z").next();
codigoCola.setText(codigoTexto);
int encontrado = cola.peek();
if (encontrado != Integer.MIN_VALUE) {
generarGrafico();
grafico.destacar("#caja_" + 0, Grafico.RECTANGULO);
grafico.destacar("#texto_" + 0, Grafico.TEXTO);
}
else {
Main.mostrarError(resourceBundle.getString("colaVacia"), resourceBundle);
}
}
}

158
src/cl/cromer/estructuras/Colores.java

@ -8,90 +8,90 @@ import javafx.scene.paint.Color;
* @author Chris Cromer
*/
public class Colores {
/**
* Cuantos colores estan definidos en esta clase.
*/
static final public int MAX_COLORS = 7;
/**
* Cuantos colores estan definidos en esta clase.
*/
static final public int MAX_COLORS = 7;
/**
* El color actual en forma numerica.
*/
private int color;
/**
* El color actual en forma numerica.
*/
private int color;
/**
* El color de texto actual.
*/
private Color texto;
/**
* El color de texto actual.
*/
private Color texto;
/**
* El color de fondo actual.
*/
private Color fondo;
/**
* El color de fondo actual.
*/
private Color fondo;
/**
* Inicializar el primer color.
*/
public Colores() {
siguinteColor();
}
/**
* Inicializar el primer color.
*/
public Colores() {
siguinteColor();
}
/**
* Cambiar el color al siguinte. Si no hay, voler al primer.
*/
public void siguinteColor() {
switch (color) {
case 1:
color = 2;
texto = Color.WHITE;
fondo = Color.RED;
break;
case 2:
color = 3;
texto = Color.BLACK;
fondo = Color.WHITE;
break;
case 3:
color = 4;
texto = Color.BLACK;
fondo = Color.PINK;
break;
case 4:
color = 5;
texto = Color.BLACK;
fondo = Color.YELLOW;
break;
case 5:
color = 6;
texto = Color.BLACK;
fondo = Color.GREEN;
break;
case 6:
color = 7;
texto = Color.BLACK;
fondo = Color.ORANGE;
break;
default:
color = 1;
texto = Color.WHITE;
fondo = Color.BLUE;
}
}
/**
* Cambiar el color al siguinte. Si no hay, voler al primer.
*/
public void siguinteColor() {
switch (color) {
case 1:
color = 2;
texto = Color.WHITE;
fondo = Color.RED;
break;
case 2:
color = 3;
texto = Color.BLACK;
fondo = Color.WHITE;
break;
case 3:
color = 4;
texto = Color.BLACK;
fondo = Color.PINK;
break;
case 4:
color = 5;
texto = Color.BLACK;
fondo = Color.YELLOW;
break;
case 5:
color = 6;
texto = Color.BLACK;
fondo = Color.GREEN;
break;
case 6:
color = 7;
texto = Color.BLACK;
fondo = Color.ORANGE;
break;
default:
color = 1;
texto = Color.WHITE;
fondo = Color.BLUE;
}
}
/**
* Devolver el color del texto actual.
*
* @return Color: Color del texto.
*/
public Color getTexto() {
return texto;
}
/**
* Devolver el color del texto actual.
*
* @return Color: Color del texto.
*/
public Color getTexto() {
return texto;
}
/**
* Devolver el color del fondo actual.
*
* @return Color: Color del fondo.
*/
public Color getFondo() {
return fondo;
}
/**
* Devolver el color del fondo actual.
*
* @return Color: Color del fondo.
*/
public Color getFondo() {
return fondo;
}
}

72
src/cl/cromer/estructuras/Enlace.java

@ -6,45 +6,45 @@ package cl.cromer.estructuras;
* @author Chris Cromer
*/
interface Enlace {
/**
* Devolver la llave.
*
* @return int: La llave.
*/
int getLlave();
/**
* Devolver la llave.
*
* @return int: La llave.
*/
int getLlave();
/**
* Cambiar el valor de la llave.
*
* @param llave int: El valor de la llave.
*/
void setLlave(int llave);
/**
* Cambiar el valor de la llave.
*
* @param llave int: El valor de la llave.
*/
void setLlave(int llave);
/**
* Devolver el siguente enlace.
*
* @return Object: El enlace a devolver.
*/
Object getSiguiente();
/**
* Devolver el siguente enlace.
*
* @return Object: El enlace a devolver.
*/
Object getSiguiente();
/**
* Cambiar el siguiente enlace.
*
* @param siguiente Object: El siguiente enlace nuevo.
*/
void setSiguiente(Object siguiente);
/**
* Cambiar el siguiente enlace.
*
* @param siguiente Object: El siguiente enlace nuevo.
*/
void setSiguiente(Object siguiente);
/**
* Devolver el enlace previo.
*
* @return Object: El enlace previo.
*/
Object getPrevio();
/**
* Devolver el enlace previo.
*
* @return Object: El enlace previo.
*/
Object getPrevio();
/**
* Cambiar el previo enlace.
*
* @param previo Object: El enlace previo nuevo.
*/
void setPrevio(Object previo);
/**
* Cambiar el previo enlace.
*
* @param previo Object: El enlace previo nuevo.
*/
void setPrevio(Object previo);
}

122
src/cl/cromer/estructuras/EnlaceCircular.java

@ -6,73 +6,73 @@ package cl.cromer.estructuras;
* @author Chris Cromer
*/
final public class EnlaceCircular implements Enlace {
/**
* La llave.
*/
private int llave;
/**
* La llave.
*/
private int llave;
/**
* El siguiente enlace.
*/
private EnlaceCircular siguiente;
/**
* El siguiente enlace.
*/
private EnlaceCircular siguiente;
/**
* Incializar.
*/
public EnlaceCircular() {
siguiente = null;
}
/**
* Incializar.
*/
public EnlaceCircular() {
siguiente = null;
}
/**
* Devolver la llave.
*
* @return int: La llave.
*/
public int getLlave() {
return llave;
}
/**
* Devolver la llave.
*
* @return int: La llave.
*/
public int getLlave() {
return llave;
}
/**
* Cambiar el valor de la llave.
*
* @param llave int: El valor de la llave.
*/
public void setLlave(int llave) {
this.llave = llave;
}
/**
* Cambiar el valor de la llave.
*
* @param llave int: El valor de la llave.
*/
public void setLlave(int llave) {
this.llave = llave;
}
/**
* Devolver el siguiente enlace.
*
* @return EnlaceCircular: El enlace a devolver.
*/
public EnlaceCircular getSiguiente() {
return siguiente;
}
/**
* Devolver el siguiente enlace.
*
* @return EnlaceCircular: El enlace a devolver.
*/
public EnlaceCircular getSiguiente() {
return siguiente;
}
/**
* Cambiar el siguiente enlace.
*
* @param siguiente Object: El siguiente enlace nuevo de tipo {@link EnlaceCircular}.
*/
public void setSiguiente(Object siguiente) {
this.siguiente = (EnlaceCircular) siguiente;
}
/**
* Cambiar el siguiente enlace.
*
* @param siguiente Object: El siguiente enlace nuevo de tipo {@link EnlaceCircular}.
*/
public void setSiguiente(Object siguiente) {
this.siguiente = (EnlaceCircular) siguiente;
}
/**
* Devolver el enlace previo.
*
* @return EnlaceCircular: El enlace previo.
*/
public EnlaceCircular getPrevio() {
return null;
}
/**
* Devolver el enlace previo.
*
* @return EnlaceCircular: El enlace previo.
*/
public EnlaceCircular getPrevio() {
return null;
}
/**
* Dummy metodo para usar interface {@link Enlace}
*
* @param previo Object: El enlace previo nuevo de tipo {@link EnlaceCircular}.
*/
public void setPrevio(Object previo) {
}
/**
* Dummy metodo para usar interface {@link Enlace}
*
* @param previo Object: El enlace previo nuevo de tipo {@link EnlaceCircular}.
*/
public void setPrevio(Object previo) {
}
}

134
src/cl/cromer/estructuras/EnlaceNormal.java

@ -6,80 +6,80 @@ package cl.cromer.estructuras;
* @author Chris Cromer
*/
final public class EnlaceNormal implements Enlace {
/**
* La llave.
*/
private int llave;
/**
* La llave.
*/
private int llave;
/**
* El siguiente enlace.
*/
private EnlaceNormal siguiente;
/**
* El siguiente enlace.
*/
private EnlaceNormal siguiente;
/**
* El enlace previo por doble enlazada.
*/
private EnlaceNormal previo;
/**
* El enlace previo por doble enlazada.
*/
private EnlaceNormal previo;
/**
* Incializar.
*/
public EnlaceNormal() {
siguiente = null;
previo = null;
}
/**
* Incializar.
*/
public EnlaceNormal() {
siguiente = null;
previo = null;
}
/**
* Devolver la llave.
*
* @return int: La llave.
*/
public int getLlave() {
return llave;
}
/**
* Devolver la llave.
*
* @return int: La llave.
*/
public int getLlave() {
return llave;
}
/**
* Cambiar el valor de la llave.
*
* @param llave int: El valor de la llave.
*/
public void setLlave(int llave) {
this.llave = llave;
}
/**
* Cambiar el valor de la llave.
*
* @param llave int: El valor de la llave.
*/
public void setLlave(int llave) {
this.llave = llave;
}
/**
* Devolver el siguiente enlace.
*
* @return EnlaceNormal: El enlace a devolver.
*/
public EnlaceNormal getSiguiente() {
return siguiente;
}
/**
* Devolver el siguiente enlace.
*
* @return EnlaceNormal: El enlace a devolver.
*/
public EnlaceNormal getSiguiente() {
return siguiente;
}
/**
* Cambiar el siguiente enlace.
*
* @param siguiente Object: El siguiente enlace nuevo de tipo {@link EnlaceNormal}.
*/
public void setSiguiente(Object siguiente) {
this.siguiente = (EnlaceNormal) siguiente;
}
/**
* Cambiar el siguiente enlace.
*
* @param siguiente Object: El siguiente enlace nuevo de tipo {@link EnlaceNormal}.
*/
public void setSiguiente(Object siguiente) {
this.siguiente = (EnlaceNormal) siguiente;
}
/**
* Devolver el enlace previo.
*
* @return EnlaceNormal: El enlace previo.
*/
public EnlaceNormal getPrevio() {
return previo;
}
/**
* Devolver el enlace previo.
*
* @return EnlaceNormal: El enlace previo.
*/
public EnlaceNormal getPrevio() {
return previo;
}
/**
* Cambiar el previo enlace.
*
* @param previo Object: El enlace previo nuevo de tipo {@link EnlaceNormal}.
*/
public void setPrevio(Object previo) {
this.previo = (EnlaceNormal) previo;
}
/**
* Cambiar el previo enlace.
*
* @param previo Object: El enlace previo nuevo de tipo {@link EnlaceNormal}.
*/
public void setPrevio(Object previo) {
this.previo = (EnlaceNormal) previo;
}
}

214
src/cl/cromer/estructuras/HashTable.java

@ -27,9 +27,9 @@ public class HashTable {
* @param tamano int: El tamaño maximo de la tabla hash.
*/
public HashTable(int tamano) {
this.tamano = tamano;
hashArray = new HashItem[tamano];
}
this.tamano = tamano;
hashArray = new HashItem[tamano];
}
/**
* Devolver la cantidad de elementos que están en la tabla.
@ -37,38 +37,38 @@ public class HashTable {
* @return int: La cantidad.
*/
public int size() {
return size;
}
return size;
}
/**
* Este metodo crea un hash muy único.
*
* @param string String: El string a hashear.
*
* @return int: El hash a devolver.
*/
@SuppressWarnings("unused")
public int hashMejor(String string) {
int intLength = string.length() / 4;
int sum = 0;
for (int j = 0; j < intLength; j++) {
char c[] = string.substring(j * 4, (j * 4) + 4).toCharArray();
int mult = 1;
for (char aC : c) {
sum = sum + aC * mult;
mult = mult * 256;
}
}
/**
* Este metodo crea un hash muy único.
*
* @param string String: El string a hashear.
*
* @return int: El hash a devolver.
*/
@SuppressWarnings("unused")
public int hashMejor(String string) {
int intLength = string.length() / 4;
int sum = 0;
for (int j = 0; j < intLength; j++) {
char c[] = string.substring(j * 4, (j * 4) + 4).toCharArray();
int mult = 1;
for (char aC : c) {
sum = sum + aC * mult;
mult = mult * 256;
}
}
char c[] = string.substring(intLength * 4).toCharArray();
int mult = 1;
for (char aC : c) {
sum = sum + aC * mult;
mult = mult * 256;
}
char c[] = string.substring(intLength * 4).toCharArray();
int mult = 1;
for (char aC : c) {
sum = sum + aC * mult;
mult = mult * 256;
}
return (Math.abs(sum) % tamano);
}
return (Math.abs(sum) % tamano);
}
/**
* Insertar una llave y valor en la tabla hash.
@ -79,45 +79,45 @@ public class HashTable {
* @return boolean: Verdad si fue insertado, sino está llena la tabla hash.
*/
public boolean insertar(String llave, int valor) {
HashItem hashItem = new HashItem(llave, valor);
int hashIndice = hash(hashItem.getLlave());
int i = 0;
while (hashArray[hashIndice] != null && hashArray[hashIndice].getLlave() != null && i < tamano) {
if (hashArray[hashIndice].getLlave().equals(llave)) {
return false;
}
hashIndice++;
hashIndice = hashIndice % tamano;
i++;
}
if (i == 10) {
return false;
}
else {
hashItem.setIndice(hashIndice);
hashArray[hashIndice] = hashItem;
size++;
return true;
}
}
HashItem hashItem = new HashItem(llave, valor);
int hashIndice = hash(hashItem.getLlave());
int i = 0;
while (hashArray[hashIndice] != null && hashArray[hashIndice].getLlave() != null && i < tamano) {
if (hashArray[hashIndice].getLlave().equals(llave)) {
return false;
}
hashIndice++;
hashIndice = hashIndice % tamano;
i++;
}
if (i == 10) {
return false;
}
else {
hashItem.setIndice(hashIndice);
hashArray[hashIndice] = hashItem;
size++;
return true;
}
}
/**
* Este metodo crea un hash usando una llave.
*
* @param string String: El string a hashear.
*
* @return int: El hash a devolver.
*/
public int hash(String string) {
int hash = 31;
for (int i = 0; i < string.length(); i++) {
hash = hash * 31 + string.charAt(i);
}
if (hash < 0) {
hash = hash * - 1;
}
return hash % tamano;
}
/**
* Este metodo crea un hash usando una llave.
*
* @param string String: El string a hashear.
*
* @return int: El hash a devolver.
*/
public int hash(String string) {
int hash = 31;
for (int i = 0; i < string.length(); i++) {
hash = hash * 31 + string.charAt(i);
}
if (hash < 0) {
hash = hash * - 1;
}
return hash % tamano;
}
/**
* Eliminar un elemento de la tabla hash.
@ -127,21 +127,21 @@ public class HashTable {
* @return boolean: Verdad si fue borrado, sino no existiá.
*/
public boolean eliminar(String llave) {
HashItem hashItem = new HashItem(llave, 0);
int hashIndice = hash(hashItem.getLlave());
int i = 0;
while (hashArray[hashIndice] != null && hashArray[hashIndice].getLlave