Moved types into parent classes.

This commit is contained in:
Chris Cromer 2016-07-04 12:37:35 -04:00
parent b888744104
commit 1229576df9
10 changed files with 213 additions and 221 deletions

View File

@ -122,4 +122,85 @@ public class Arbol {
}
}
}
/**
* Esta clase contiene los tipos de arboles.
*
* @author Chris Cromer
*/
final static public class Tipos {
/**
* Tipo general.
*/
static final public int GENERAL = 0;
/**
* Tipo binario.
*/
static final public int BINARIO = 1;
/**
* Tipo busqueda binaria.
*/
static final public int BUSQUEDA_BINARIA = 2;
/**
* Tipo AVL.
*/
static final public int AVL = 3;
/**
* Tipo rojo-negro.
*/
static final public int ROJO_NEGRO = 4;
/**
* Tipo B-Tree.
*/
static final public int B_TREE = 5;
/**
* El tipo elegido.
*/
final private int tipo;
/**
* Inicilizar el tipo de arbol.
*
* @param tipo int: El tipo de lista enlazada, {@value #GENERAL}, {@value #BINARIO}, {@value #BUSQUEDA_BINARIA}, {@value #AVL}, {@value #ROJO_NEGRO} o {@value #B_TREE}
*/
public Tipos(int tipo) {
switch (tipo) {
case GENERAL:
this.tipo = GENERAL;
break;
case BINARIO:
this.tipo = BINARIO;
break;
case BUSQUEDA_BINARIA:
this.tipo = BUSQUEDA_BINARIA;
break;
case AVL:
this.tipo = AVL;
break;
case ROJO_NEGRO:
this.tipo = ROJO_NEGRO;
break;
case B_TREE:
this.tipo = B_TREE;
break;
default:
this.tipo = GENERAL;
}
}
/**
* Devolver el tipo de arbol.
*
* @return int: El tipo.
*/
public int getTipo() {
return tipo;
}
}
}

View File

@ -4,17 +4,12 @@ import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.layout.ColumnConstraints;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.VBox;
import javafx.scene.text.Text;
import java.net.URL;
import java.util.Queue;
import java.util.ResourceBundle;
import java.util.Scanner;
import java.util.Stack;
import java.util.logging.Level;
/**
* Esta clase es para controlar todos la interfaz de Arbol.
@ -127,7 +122,7 @@ public class ArbolController implements Initializable {
contenidoArbol.setGridLinesVisible(true);
grafico = new Grafico(scene);
//this.arbol = new Arbol();
ArbolTipos arbolTipos = (ArbolTipos) scene.getUserData();
Arbol.Tipos tipos = (Arbol.Tipos) scene.getUserData();
}
/**
@ -164,6 +159,7 @@ public class ArbolController implements Initializable {
boolean filaVacio = false;
int x = medio;
int y = 0;
Colores colores = new Colores();
while (!filaVacio) {
Stack localStack = new Stack();
filaVacio = true;
@ -180,7 +176,8 @@ public class ArbolController implements Initializable {
text = new Text();
text.setText(String.valueOf(temp.getValor()));
text.setId(x + "_" + y);
contenidoArbol.add(text, x, y);
contenidoArbol.add(Grafico.crearCirculo(colores, x + "_" + y), x, y);
colores.siguinteColor();
localStack.push(temp.getIzquerda());
localStack.push(temp.getDerecha());

View File

@ -1,82 +0,0 @@
package cl.cromer.estructuras;
/**
* Esta clase contiene los tipos de arboles.
*
* @author Chris Cromer
*/
final public class ArbolTipos {
/**
* Tipo general.
*/
static final public int GENERAL = 0;
/**
* Tipo binario.
*/
static final public int BINARIO = 1;
/**
* Tipo busqueda binaria.
*/
static final public int BUSQUEDA_BINARIA = 2;
/**
* Tipo AVL.
*/
static final public int AVL = 3;
/**
* Tipo rojo-negro.
*/
static final public int ROJO_NEGRO = 4;
/**
* Tipo B-Tree.
*/
static final public int B_TREE = 5;
/**
* El tipo elegido.
*/
final private int tipo;
/**
* Inicilizar el tipo de arbol.
*
* @param tipo int: El tipo de lista enlazada, {@value #GENERAL}, {@value #BINARIO}, {@value #BUSQUEDA_BINARIA}, {@value #AVL}, {@value #ROJO_NEGRO} o {@value #B_TREE}
*/
public ArbolTipos(int tipo) {
switch (tipo) {
case GENERAL:
this.tipo = GENERAL;
break;
case BINARIO:
this.tipo = BINARIO;
break;
case BUSQUEDA_BINARIA:
this.tipo = BUSQUEDA_BINARIA;
break;
case AVL:
this.tipo = AVL;
break;
case ROJO_NEGRO:
this.tipo = ROJO_NEGRO;
break;
case B_TREE:
this.tipo = B_TREE;
break;
default:
this.tipo = GENERAL;
}
}
/**
* Devolver el tipo de arbol.
*
* @return int: El tipo.
*/
public int getTipo() {
return tipo;
}
}

View File

@ -527,4 +527,53 @@ final public class Array {
return punteroIzquerda;
}
}
/**
* Esta clase contiene los tipos de array.
*
* @author Chris Cromer
*/
final static public class Tipos {
/**
* Tipo de array simple.
*/
static final public int SIMPLE = 0;
/**
* Tipo de array ordenado.
*/
static final public int ORDENADO = 1;
/**
* El tipo que está elegido.
*/
final private int tipo;
/**
* Inicilizar el tipo.
*
* @param tipo int: Tipo de array, {@value #SIMPLE} o {@value #ORDENADO}
*/
public Tipos(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;
}
}
}

View File

@ -231,8 +231,8 @@ public class ArrayController implements Initializable {
scene = contenidoArray.getScene();
grafico = new Grafico(scene);
this.array = new Array(10);
ArrayTipos arrayTipos = (ArrayTipos) scene.getUserData();
if (arrayTipos.getTipo() == ArrayTipos.ORDENADO) {
Array.Tipos arrayTipos = (Array.Tipos) scene.getUserData();
if (arrayTipos.getTipo() == Array.Tipos.ORDENADO) {
this.array.setOrdered(true);
}
}

View File

@ -1,50 +0,0 @@
package cl.cromer.estructuras;
/**
* Esta clase contiene los tipos de array.
*
* @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;
/**
* El tipo que está elegido.
*/
final private int 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;
}
}

View File

@ -178,4 +178,61 @@ final public class ListaEnlazada {
public int size() {
return size;
}
/**
* Esta clase contiene los tipos de listas enlazadas.
*
* @author Chris Cromer
*/
final static public class Tipos {
/**
* Tipo simple.
*/
static final public int SIMPLE = 0;
/**
* Tipo circular.
*/
static final public int CIRCULAR = 1;
/**
* Tipo doblemente enlazada.
*/
static final public int DOBLEMENTE_ENLAZADA = 2;
/**
* El tipo elegido.
*/
final private int tipo;
/**
* Inicilizar el tipo de lista enlazada.
*
* @param tipo int: El tipo de lista enlazada, {@value #SIMPLE}, {@value #CIRCULAR} o {@value #DOBLEMENTE_ENLAZADA}
*/
public Tipos(int tipo) {
switch (tipo) {
case SIMPLE:
this.tipo = SIMPLE;
break;
case CIRCULAR:
this.tipo = CIRCULAR;
break;
case DOBLEMENTE_ENLAZADA:
this.tipo = DOBLEMENTE_ENLAZADA;
break;
default:
this.tipo = SIMPLE;
}
}
/**
* Devolver el tipo de lista enlazada.
*
* @return int: El tipo.
*/
public int getTipo() {
return tipo;
}
}
}

View File

@ -1,58 +0,0 @@
package cl.cromer.estructuras;
/**
* Esta clase contiene los tipos de listas enlazadas.
*
* @author Chris Cromer
*/
final public class ListaEnlazadaTipos {
/**
* Tipo simple.
*/
static final public int SIMPLE = 0;
/**
* Tipo circular.
*/
static final public int CIRCULAR = 1;
/**
* Tipo doblemente enlazada.
*/
static final public int DOBLEMENTE_ENLAZADA = 2;
/**
* El tipo elegido.
*/
final private int tipo;
/**
* Inicilizar el tipo de lista enlazada.
*
* @param tipo int: El tipo de lista enlazada, {@value #SIMPLE}, {@value #CIRCULAR} o {@value #DOBLEMENTE_ENLAZADA}
*/
public ListaEnlazadaTipos(int tipo) {
switch (tipo) {
case SIMPLE:
this.tipo = SIMPLE;
break;
case CIRCULAR:
this.tipo = CIRCULAR;
break;
case DOBLEMENTE_ENLAZADA:
this.tipo = DOBLEMENTE_ENLAZADA;
break;
default:
this.tipo = SIMPLE;
}
}
/**
* Devolver el tipo de lista enlazada.
*
* @return int: El tipo.
*/
public int getTipo() {
return tipo;
}
}

View File

@ -65,7 +65,7 @@ public class ListaEnlazdaController implements Initializable {
/**
* Tipo de lista enlazada a trabajar.
*/
private ListaEnlazadaTipos listaEnlazadaTipos;
private ListaEnlazada.Tipos listaEnlazadaTipos;
/**
* Grafico rectangulos y lineas.
@ -104,7 +104,7 @@ public class ListaEnlazdaController implements Initializable {
int minimo = 0;
int rango = maximo - minimo + 1;
if (listaEnlazadaTipos.getTipo() != ListaEnlazadaTipos.CIRCULAR) {
if (listaEnlazadaTipos.getTipo() != ListaEnlazada.Tipos.CIRCULAR) {
for (listaEnlazada.size(); listaEnlazada.size() < 5; ) {
int numero = random.nextInt(rango) + minimo;
while (listaEnlazada.buscar(numero) != null) {
@ -156,7 +156,7 @@ public class ListaEnlazdaController implements Initializable {
if (valorLista.getText() != null && ! valorLista.getText().trim().equals("")) {
try {
boolean exito;
if (listaEnlazadaTipos.getTipo() != ListaEnlazadaTipos.CIRCULAR) {
if (listaEnlazadaTipos.getTipo() != ListaEnlazada.Tipos.CIRCULAR) {
exito = listaEnlazada.insertar(Integer.valueOf(valorLista.getText()));
}
else {
@ -199,7 +199,7 @@ public class ListaEnlazdaController implements Initializable {
try {
if (valorLista.getText() != null && ! valorLista.getText().trim().equals("")) {
boolean exito;
if (listaEnlazadaTipos.getTipo() != ListaEnlazadaTipos.CIRCULAR) {
if (listaEnlazadaTipos.getTipo() != ListaEnlazada.Tipos.CIRCULAR) {
exito = listaEnlazada.eliminar(Integer.valueOf(valorLista.getText()));
}
else {
@ -243,7 +243,7 @@ public class ListaEnlazdaController implements Initializable {
try {
if (valorLista.getText() != null && ! valorLista.getText().trim().equals("")) {
ListaEnlace listaEnlace;
if (listaEnlazadaTipos.getTipo() != ListaEnlazadaTipos.CIRCULAR) {
if (listaEnlazadaTipos.getTipo() != ListaEnlazada.Tipos.CIRCULAR) {
listaEnlace = listaEnlazada.buscar(Integer.valueOf(valorLista.getText()));
}
else {
@ -276,20 +276,20 @@ public class ListaEnlazdaController implements Initializable {
private void initializeLista() {
scene = contenidoLista.getScene();
grafico = new Grafico(scene);
listaEnlazadaTipos = (ListaEnlazadaTipos) scene.getUserData();
listaEnlazadaTipos = (ListaEnlazada.Tipos) scene.getUserData();
nuevaLista();
}
private String getTipoString() {
String tipo;
switch (listaEnlazadaTipos.getTipo()) {
case ListaEnlazadaTipos.SIMPLE:
case ListaEnlazada.Tipos.SIMPLE:
tipo = "Simple";
break;
case ListaEnlazadaTipos.CIRCULAR:
case ListaEnlazada.Tipos.CIRCULAR:
tipo = "Circular";
break;
case ListaEnlazadaTipos.DOBLEMENTE_ENLAZADA:
case ListaEnlazada.Tipos.DOBLEMENTE_ENLAZADA:
tipo = "Doble";
break;
default:
@ -307,13 +307,13 @@ public class ListaEnlazdaController implements Initializable {
contenidoLista.getChildren().clear();
contenidoListaCircular.getChildren().clear();
if (listaEnlazadaTipos.getTipo() != ListaEnlazadaTipos.CIRCULAR) {
if (listaEnlazadaTipos.getTipo() != ListaEnlazada.Tipos.CIRCULAR) {
for (int i = 0; i < listaEnlazada.size(); i++) {
ListaEnlace listaEnlace = listaEnlazada.getIndice(i);
if (listaEnlazada.getTipo() == ListaEnlazadaTipos.SIMPLE) {
if (listaEnlazada.getTipo() == ListaEnlazada.Tipos.SIMPLE) {
dibujarSimple(listaEnlace, false);
}
else if (listaEnlazada.getTipo() == ListaEnlazadaTipos.DOBLEMENTE_ENLAZADA) {
else if (listaEnlazada.getTipo() == ListaEnlazada.Tipos.DOBLEMENTE_ENLAZADA) {
if (i != listaEnlazada.size() - 1) {
dibujarDoble(listaEnlace, (i == 0));
}
@ -340,13 +340,13 @@ public class ListaEnlazdaController implements Initializable {
* Crear una nueva lista enlazada.
*/
private void nuevaLista() {
if (listaEnlazadaTipos.getTipo() != ListaEnlazadaTipos.CIRCULAR) {
if (listaEnlazadaTipos.getTipo() != ListaEnlazada.Tipos.CIRCULAR) {
listaEnlazada = new ListaEnlazada();
listaEnlazada.setTipo(listaEnlazadaTipos.getTipo());
}
else {
listaEnlazadaCircular = new ListaEnlazadaCircular();
listaEnlazadaCircular.setTipo(ListaEnlazadaTipos.SIMPLE);
listaEnlazadaCircular.setTipo(ListaEnlazada.Tipos.SIMPLE);
}
}

View File

@ -19,8 +19,6 @@ import java.util.Optional;
import java.util.ResourceBundle;
import java.util.logging.Level;
import static cl.cromer.estructuras.ListaEnlazadaTipos.SIMPLE;
/**
* Controlar las acciones cuando una opción es elegido en el menu.
*/
@ -52,7 +50,7 @@ public class MenuController extends VBox implements Initializable {
*/
@FXML
protected void menuArraySimple() {
ArrayTipos arrayTipos = new ArrayTipos(ArrayTipos.SIMPLE);
Array.Tipos arrayTipos = new Array.Tipos(Array.Tipos.SIMPLE);
loadStage(
resourceBundle.getString("tituloArraySimple"),
"/cl/cromer/estructuras/fxml/array.fxml",
@ -66,7 +64,7 @@ public class MenuController extends VBox implements Initializable {
*/
@FXML
protected void menuArrayOrdenado() {
ArrayTipos arrayTipos = new ArrayTipos(ArrayTipos.ORDENADO);
Array.Tipos arrayTipos = new Array.Tipos(Array.Tipos.ORDENADO);
loadStage(
resourceBundle.getString("tituloArrayOrdenado"),
"/cl/cromer/estructuras/fxml/array.fxml",
@ -152,7 +150,7 @@ public class MenuController extends VBox implements Initializable {
*/
@FXML
protected void menuListaEnlazadaSimple() {
ListaEnlazadaTipos listaEnlazadaTipos = new ListaEnlazadaTipos(SIMPLE);
ListaEnlazada.Tipos listaEnlazadaTipos = new ListaEnlazada.Tipos(ListaEnlazada.Tipos.SIMPLE);
loadStage(
resourceBundle.getString("tituloListaEnlazadaSimple"),
"/cl/cromer/estructuras/fxml/listaEnlazada.fxml",
@ -166,7 +164,7 @@ public class MenuController extends VBox implements Initializable {
*/
@FXML
protected void menuListaEnlazadaCircular() {
ListaEnlazadaTipos listaEnlazadaTipos = new ListaEnlazadaTipos(ListaEnlazadaTipos.CIRCULAR);
ListaEnlazada.Tipos listaEnlazadaTipos = new ListaEnlazada.Tipos(ListaEnlazada.Tipos.CIRCULAR);
loadStage(
resourceBundle.getString("tituloListaEnlazadaCircular"),
"/cl/cromer/estructuras/fxml/listaEnlazada.fxml",
@ -180,7 +178,7 @@ public class MenuController extends VBox implements Initializable {
*/
@FXML
protected void menuListaEnlazadaDoble() {
ListaEnlazadaTipos listaEnlazadaTipos = new ListaEnlazadaTipos(ListaEnlazadaTipos.DOBLEMENTE_ENLAZADA);
ListaEnlazada.Tipos listaEnlazadaTipos = new ListaEnlazada.Tipos(ListaEnlazada.Tipos.DOBLEMENTE_ENLAZADA);
loadStage(
resourceBundle.getString("tituloListaEnlazadaDoble"),
"/cl/cromer/estructuras/fxml/listaEnlazada.fxml",
@ -218,7 +216,7 @@ public class MenuController extends VBox implements Initializable {
*/
@FXML
protected void menuArbolGeneral() {
ArbolTipos arbolTipos = new ArbolTipos(ArbolTipos.GENERAL);
Arbol.Tipos arbolTipos = new Arbol.Tipos(Arbol.Tipos.GENERAL);
loadStage(
resourceBundle.getString("tituloCola"),
"/cl/cromer/estructuras/fxml/arbol.fxml",