Browse Source

Initial commit

master
Chris Cromer 5 years ago
commit
a41abff9b0
  1. 6
      .idea/ant.xml
  2. 47
      .idea/artifacts/Estructuras_de_Datos.xml
  3. 9
      .idea/codeStyleSettings.xml
  4. 23
      .idea/compiler.xml
  5. 3
      .idea/copyright/profiles_settings.xml
  6. 2
      .idea/description.html
  7. 3
      .idea/dictionaries/cromer.xml
  8. 5
      .idea/encodings.xml
  9. 7
      .idea/gradle.xml
  10. 21
      .idea/inspectionProfiles/Project_Default.xml
  11. 7
      .idea/inspectionProfiles/profiles_settings.xml
  12. 68
      .idea/misc.xml
  13. 8
      .idea/modules.xml
  14. 125
      .idea/uiDesigner.xml
  15. 6
      .idea/vcs.xml
  16. 11
      Estructuras de Datos.iml
  17. 5
      estructuras_de_datos.properties
  18. 248
      estructuras_de_datos.xml
  19. 7
      src/META-INF/MANIFEST.MF
  20. 213
      src/cl/cromer/estructuras/Array.java
  21. 282
      src/cl/cromer/estructuras/ArrayController.java
  22. 174
      src/cl/cromer/estructuras/BurbujaController.java
  23. 101
      src/cl/cromer/estructuras/Cola.java
  24. 236
      src/cl/cromer/estructuras/ColaController.java
  25. 94
      src/cl/cromer/estructuras/Colores.java
  26. 196
      src/cl/cromer/estructuras/Grafico.java
  27. 174
      src/cl/cromer/estructuras/InsercionController.java
  28. 119
      src/cl/cromer/estructuras/ListaEnlazada.java
  29. 52
      src/cl/cromer/estructuras/Logs.java
  30. 66
      src/cl/cromer/estructuras/Main.java
  31. 288
      src/cl/cromer/estructuras/MenuController.java
  32. 100
      src/cl/cromer/estructuras/Pila.java
  33. 236
      src/cl/cromer/estructuras/PilaController.java
  34. 174
      src/cl/cromer/estructuras/SeleccionController.java
  35. 174
      src/cl/cromer/estructuras/ShellController.java
  36. 155
      src/cl/cromer/estructuras/TextFieldLimited.java
  37. 86
      src/cl/cromer/estructuras/bundles/Idioma_en.properties
  38. 86
      src/cl/cromer/estructuras/bundles/Idioma_es.properties
  39. 10
      src/cl/cromer/estructuras/code/arrayOrdenado/buscar
  40. 18
      src/cl/cromer/estructuras/code/arrayOrdenado/eliminar
  41. 13
      src/cl/cromer/estructuras/code/arrayOrdenado/insertar
  42. 10
      src/cl/cromer/estructuras/code/arraySimple/buscar
  43. 12
      src/cl/cromer/estructuras/code/arraySimple/eliminar
  44. 13
      src/cl/cromer/estructuras/code/arraySimple/insertar
  45. 13
      src/cl/cromer/estructuras/code/burbuja/ordenar
  46. 4
      src/cl/cromer/estructuras/code/cola/peek
  47. 6
      src/cl/cromer/estructuras/code/cola/pop
  48. 6
      src/cl/cromer/estructuras/code/cola/push
  49. 14
      src/cl/cromer/estructuras/code/insercion/ordenar
  50. 4
      src/cl/cromer/estructuras/code/pila/peek
  51. 6
      src/cl/cromer/estructuras/code/pila/pop
  52. 6
      src/cl/cromer/estructuras/code/pila/push
  53. 13
      src/cl/cromer/estructuras/code/seleccion/ordenar
  54. 21
      src/cl/cromer/estructuras/css/style.css
  55. 30
      src/cl/cromer/estructuras/fxml/array.fxml
  56. 24
      src/cl/cromer/estructuras/fxml/burbuja.fxml
  57. 31
      src/cl/cromer/estructuras/fxml/cola.fxml
  58. 24
      src/cl/cromer/estructuras/fxml/insercion.fxml
  59. 17
      src/cl/cromer/estructuras/fxml/main.fxml
  60. 45
      src/cl/cromer/estructuras/fxml/menu.fxml
  61. 30
      src/cl/cromer/estructuras/fxml/pila.fxml
  62. 24
      src/cl/cromer/estructuras/fxml/seleccion.fxml
  63. 24
      src/cl/cromer/estructuras/fxml/shell.fxml
  64. BIN
      src/cl/cromer/estructuras/images/UBBLogo.png
  65. BIN
      src/cl/cromer/estructuras/images/diagram.png
  66. 170
      src/cl/cromer/estructuras/images/diagrama.uml

6
.idea/ant.xml

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AntConfiguration">
<buildFile url="file://$PROJECT_DIR$/estructuras_de_datos.xml" />
</component>
</project>

47
.idea/artifacts/Estructuras_de_Datos.xml

@ -0,0 +1,47 @@
<component name="ArtifactManager">
<artifact type="javafx" name="Estructuras de Datos">
<output-path>$PROJECT_DIR$/out/artifacts/Estructuras_de_Datos</output-path>
<properties id="ant-postprocessing">
<options>
<file>file://$PROJECT_DIR$/estructuras_de_datos.xml</file>
<target>all</target>
</options>
</properties>
<properties id="ant-preprocessing">
<options>
<file>file://$PROJECT_DIR$/estructuras_de_datos.xml</file>
<target>clean</target>
</options>
</properties>
<properties id="javafx-properties">
<options>
<option name="appClass" value="cl.cromer.estructuras.Main" />
<option name="customManifestAttributes">
<list>
<JavaFxManifestAttribute>
<option name="name" value="Created-By" />
<option name="value" value="Chris Cromer" />
</JavaFxManifestAttribute>
<JavaFxManifestAttribute>
<option name="name" value="Class-Path" />
<option name="value" value="/cl/cromer/estructuras" />
</JavaFxManifestAttribute>
</list>
</option>
<option name="description" value="" />
<option name="height" value="768" />
<option name="htmlParamFile" value="" />
<option name="nativeBundle" value="all" />
<option name="paramFile" value="" />
<option name="title" value="Estructuras de Datos" />
<option name="vendor" value="Chris Cromer" />
<option name="width" value="1024" />
</options>
</properties>
<root id="root">
<element id="archive" name="Estructuras_de_Datos.jar">
<element id="module-output" name="Estructuras de Datos" />
</element>
</root>
</artifact>
</component>

9
.idea/codeStyleSettings.xml

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectCodeStyleSettingsManager">
<option name="PER_PROJECT_SETTINGS">
<value />
</option>
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default (1)" />
</component>
</project>

23
.idea/compiler.xml

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<option name="DEFAULT_COMPILER" value="Javac" />
<resourceExtensions />
<wildcardResourcePatterns>
<entry name="!?*.java" />
<entry name="!?*.form" />
<entry name="!?*.class" />
<entry name="!?*.groovy" />
<entry name="!?*.scala" />
<entry name="!?*.flex" />
<entry name="!?*.kt" />
<entry name="!?*.clj" />
</wildcardResourcePatterns>
<annotationProcessing>
<profile default="true" name="Default" enabled="false">
<processorPath useClasspath="true" />
</profile>
</annotationProcessing>
</component>
</project>

3
.idea/copyright/profiles_settings.xml

@ -0,0 +1,3 @@
<component name="CopyrightManager">
<settings default="" />
</component>

2
.idea/description.html

@ -0,0 +1,2 @@
<html>Simple <b>JavaFX 2.0</b> application that includes simple .fxml file with attached controller and Main class to quick start. Artifact to build JavaFX application is provided.
</html>

3
.idea/dictionaries/cromer.xml

@ -0,0 +1,3 @@
<component name="ProjectDictionaryState">
<dictionary name="cromer" />
</component>

5
.idea/encodings.xml

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
</project>

7
.idea/gradle.xml

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleSettings">
<option name="gradleHome" value="C:/Program Files (x86)/Gradle/gradle-1.0-rc-3" />
</component>
</project>

21
.idea/inspectionProfiles/Project_Default.xml

@ -0,0 +1,21 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="Duplicates" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
<inspection_tool class="LoggerInitializedWithForeignClass" enabled="false" level="WARNING" enabled_by_default="false">
<option name="loggerClassName" value="org.apache.log4j.Logger,org.slf4j.LoggerFactory,org.apache.commons.logging.LogFactory,java.util.logging.Logger" />
<option name="loggerFactoryMethodName" value="getLogger,getLogger,getLog,getLogger" />
</inspection_tool>
<inspection_tool class="ParameterCanBeLocal" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="SpellCheckingInspection" enabled="false" level="TYPO" enabled_by_default="false">
<option name="processCode" value="true" />
<option name="processLiterals" value="true" />
<option name="processComments" value="true" />
</inspection_tool>
<inspection_tool class="WeakerAccess" enabled="false" level="WARNING" enabled_by_default="false">
<option name="SUGGEST_PACKAGE_LOCAL_FOR_MEMBERS" value="true" />
<option name="SUGGEST_PACKAGE_LOCAL_FOR_TOP_CLASSES" value="true" />
<option name="SUGGEST_PRIVATE_FOR_INNERS" value="false" />
</inspection_tool>
</profile>
</component>

7
.idea/inspectionProfiles/profiles_settings.xml

@ -0,0 +1,7 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="PROJECT_PROFILE" value="Project Default" />
<option name="USE_PROJECT_PROFILE" value="true" />
<version value="1.0" />
</settings>
</component>

68
.idea/misc.xml

@ -0,0 +1,68 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ClientPropertiesManager">
<properties class="javax.swing.AbstractButton">
<property name="hideActionText" class="java.lang.Boolean" />
</properties>
<properties class="javax.swing.JComponent">
<property name="html.disable" class="java.lang.Boolean" />
</properties>
<properties class="javax.swing.JEditorPane">
<property name="JEditorPane.w3cLengthUnits" class="java.lang.Boolean" />
<property name="JEditorPane.honorDisplayProperties" class="java.lang.Boolean" />
<property name="charset" class="java.lang.String" />
</properties>
<properties class="javax.swing.JList">
<property name="List.isFileList" class="java.lang.Boolean" />
</properties>
<properties class="javax.swing.JPasswordField">
<property name="JPasswordField.cutCopyAllowed" class="java.lang.Boolean" />
</properties>
<properties class="javax.swing.JSlider">
<property name="Slider.paintThumbArrowShape" class="java.lang.Boolean" />
<property name="JSlider.isFilled" class="java.lang.Boolean" />
</properties>
<properties class="javax.swing.JTable">
<property name="Table.isFileList" class="java.lang.Boolean" />
<property name="JTable.autoStartsEdit" class="java.lang.Boolean" />
<property name="terminateEditOnFocusLost" class="java.lang.Boolean" />
</properties>
<properties class="javax.swing.JToolBar">
<property name="JToolBar.isRollover" class="java.lang.Boolean" />
</properties>
<properties class="javax.swing.JTree">
<property name="JTree.lineStyle" class="java.lang.String" />
</properties>
<properties class="javax.swing.text.JTextComponent">
<property name="caretAspectRatio" class="java.lang.Double" />
<property name="caretWidth" class="java.lang.Integer" />
</properties>
</component>
<component name="EntryPointsManager">
<entry_points version="2.0" />
</component>
<component name="JavadocGenerationManager">
<option name="OUTPUT_DIRECTORY" value="$PROJECT_DIR$/out/doc" />
<option name="OPTION_SCOPE" value="private" />
<option name="OPTION_HIERARCHY" value="true" />
<option name="OPTION_NAVIGATOR" value="true" />
<option name="OPTION_INDEX" value="true" />
<option name="OPTION_SEPARATE_INDEX" value="true" />
<option name="OPTION_DOCUMENT_TAG_USE" value="true" />
<option name="OPTION_DOCUMENT_TAG_AUTHOR" value="true" />
<option name="OPTION_DOCUMENT_TAG_VERSION" value="true" />
<option name="OPTION_DOCUMENT_TAG_DEPRECATED" value="true" />
<option name="OPTION_DEPRECATED_LIST" value="true" />
<option name="OTHER_OPTIONS" value="-charset utf8" />
<option name="HEAP_SIZE" />
<option name="LOCALE" value="es" />
<option name="OPEN_IN_BROWSER" value="false" />
<option name="OPTION_INCLUDE_LIBS" value="true" />
</component>
<component name="ProjectKey">
<option name="state" value="project://e79810c8-c5c8-43b1-b19c-90c1f4095425" />
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="false" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

8
.idea/modules.xml

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/Estructuras de Datos.iml" filepath="$PROJECT_DIR$/Estructuras de Datos.iml" />
</modules>
</component>
</project>

125
.idea/uiDesigner.xml

@ -0,0 +1,125 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>

6
.idea/vcs.xml

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

11
Estructuras de Datos.iml

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

5
estructuras_de_datos.properties

@ -0,0 +1,5 @@
path.variable.kotlin_bundled=/usr/share/intellij-idea-ultimate-edition/plugins/Kotlin/kotlinc
path.variable.maven_repository=/home/cromer/.m2/repository
jdk.home.1.8=/usr/lib/jvm/java-8-jdk
idea.home=/usr/share/intellij-idea-ultimate-edition
javac2.instrumentation.includeJavaRuntime=false

248
estructuras_de_datos.xml

@ -0,0 +1,248 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="estructuras_de_datos" default="all">
<property file="estructuras_de_datos.properties"/>
<!-- Uncomment the following property if no tests compilation is needed -->
<!--
<property name="skip.tests" value="true"/>
-->
<!-- Compiler options -->
<property name="compiler.debug" value="on"/>
<property name="compiler.generate.no.warnings" value="off"/>
<property name="compiler.args" value=""/>
<property name="compiler.max.memory" value="700m"/>
<patternset id="ignored.files">
<exclude name="**/*.hprof/**"/>
<exclude name="**/*.pyc/**"/>
<exclude name="**/*.pyo/**"/>
<exclude name="**/*.rbc/**"/>
<exclude name="**/*.yarb/**"/>
<exclude name="**/*~/**"/>
<exclude name="**/.DS_Store/**"/>
<exclude name="**/.git/**"/>
<exclude name="**/.hg/**"/>
<exclude name="**/.svn/**"/>
<exclude name="**/CVS/**"/>
<exclude name="**/RCS/**"/>
<exclude name="**/SCCS/**"/>
<exclude name="**/__pycache__/**"/>
<exclude name="**/_svn/**"/>
<exclude name="**/rcs/**"/>
<exclude name="**/vssver.scc/**"/>
<exclude name="**/vssver2.scc/**"/>
</patternset>
<patternset id="library.patterns">
<include name="*.egg"/>
<include name="*.jar"/>
<include name="*.ear"/>
<include name="*.apk"/>
<include name="*.swc"/>
<include name="*.war"/>
<include name="*.ane"/>
<include name="*.zip"/>
</patternset>
<patternset id="compiler.resources">
<exclude name="**/?*.java"/>
<exclude name="**/?*.form"/>
<exclude name="**/?*.class"/>
<exclude name="**/?*.groovy"/>
<exclude name="**/?*.scala"/>
<exclude name="**/?*.flex"/>
<exclude name="**/?*.kt"/>
<exclude name="**/?*.clj"/>
</patternset>
<!-- JDK definitions -->
<property name="jdk.bin.1.8" value="${jdk.home.1.8}/bin"/>
<path id="jdk.classpath.1.8">
<fileset dir="${jdk.home.1.8}">
<include name="jre/lib/charsets.jar"/>
<include name="jre/lib/deploy.jar"/>
<include name="jre/lib/ext/cldrdata.jar"/>
<include name="jre/lib/ext/dnsns.jar"/>
<include name="jre/lib/ext/jaccess.jar"/>
<include name="jre/lib/ext/jfxrt.jar"/>
<include name="jre/lib/ext/localedata.jar"/>
<include name="jre/lib/ext/nashorn.jar"/>
<include name="jre/lib/ext/sunec.jar"/>
<include name="jre/lib/ext/sunjce_provider.jar"/>
<include name="jre/lib/ext/sunpkcs11.jar"/>
<include name="jre/lib/ext/zipfs.jar"/>
<include name="jre/lib/javaws.jar"/>
<include name="jre/lib/jce.jar"/>
<include name="jre/lib/jfr.jar"/>
<include name="jre/lib/jfxswt.jar"/>
<include name="jre/lib/jsse.jar"/>
<include name="jre/lib/management-agent.jar"/>
<include name="jre/lib/plugin.jar"/>
<include name="jre/lib/resources.jar"/>
<include name="jre/lib/rt.jar"/>
</fileset>
</path>
<property name="project.jdk.home" value="${jdk.home.1.8}"/>
<property name="project.jdk.bin" value="${jdk.bin.1.8}"/>
<property name="project.jdk.classpath" value="jdk.classpath.1.8"/>
<!-- Register Custom Compiler Taskdefs -->
<property name="javac2.home" value="${idea.home}/lib"/>
<path id="javac2.classpath">
<pathelement location="${javac2.home}/javac2.jar"/>
<pathelement location="${javac2.home}/jdom.jar"/>
<pathelement location="${javac2.home}/asm-all.jar"/>
<pathelement location="${javac2.home}/jgoodies-forms.jar"/>
</path>
<target name="register.custom.compilers">
<taskdef name="javac2" classname="com.intellij.ant.Javac2" classpathref="javac2.classpath"/>
<taskdef name="instrumentIdeaExtensions" classname="com.intellij.ant.InstrumentIdeaExtensions" classpathref="javac2.classpath"/>
</target>
<!-- Modules -->
<!-- Module Estructuras de Datos -->
<dirname property="module.estructuras_de_datos.basedir" file="${ant.file}"/>
<property name="module.jdk.home.estructuras_de_datos" value="${jdk.home.1.8}"/>
<property name="module.jdk.bin.estructuras_de_datos" value="${jdk.bin.1.8}"/>
<property name="module.jdk.classpath.estructuras_de_datos" value="jdk.classpath.1.8"/>
<property name="compiler.args.estructuras_de_datos" value="-encoding UTF-8 -source 8 -target 8 ${compiler.args}"/>
<property name="estructuras_de_datos.output.dir" value="${module.estructuras_de_datos.basedir}/out/production/Estructuras de Datos"/>
<property name="estructuras_de_datos.testoutput.dir" value="${module.estructuras_de_datos.basedir}/out/test/Estructuras de Datos"/>
<path id="estructuras_de_datos.module.bootclasspath">
<!-- Paths to be included in compilation bootclasspath -->
</path>
<path id="estructuras_de_datos.module.production.classpath">
<path refid="${module.jdk.classpath.estructuras_de_datos}"/>
</path>
<path id="estructuras_de_datos.runtime.production.module.classpath">
<pathelement location="${estructuras_de_datos.output.dir}"/>
</path>
<path id="estructuras_de_datos.module.classpath">
<path refid="${module.jdk.classpath.estructuras_de_datos}"/>
<pathelement location="${estructuras_de_datos.output.dir}"/>
</path>
<path id="estructuras_de_datos.runtime.module.classpath">
<pathelement location="${estructuras_de_datos.testoutput.dir}"/>
<pathelement location="${estructuras_de_datos.output.dir}"/>
</path>
<patternset id="excluded.from.module.estructuras_de_datos">
<patternset refid="ignored.files"/>
</patternset>
<patternset id="excluded.from.compilation.estructuras_de_datos">
<patternset refid="excluded.from.module.estructuras_de_datos"/>
</patternset>
<path id="estructuras_de_datos.module.sourcepath">
<dirset dir="${module.estructuras_de_datos.basedir}">
<include name="src"/>
</dirset>
</path>
<target name="compile.module.estructuras_de_datos" depends="compile.module.estructuras_de_datos.production,compile.module.estructuras_de_datos.tests" description="Compile module Estructuras de Datos"/>
<target name="compile.module.estructuras_de_datos.production" depends="register.custom.compilers" description="Compile module Estructuras de Datos; production classes">
<mkdir dir="${estructuras_de_datos.output.dir}"/>
<javac2 destdir="${estructuras_de_datos.output.dir}" debug="${compiler.debug}" nowarn="${compiler.generate.no.warnings}" memorymaximumsize="${compiler.max.memory}" fork="true" executable="${module.jdk.bin.estructuras_de_datos}/javac">
<compilerarg line="${compiler.args.estructuras_de_datos}"/>
<bootclasspath refid="estructuras_de_datos.module.bootclasspath"/>
<classpath refid="estructuras_de_datos.module.production.classpath"/>
<src refid="estructuras_de_datos.module.sourcepath"/>
<patternset refid="excluded.from.compilation.estructuras_de_datos"/>
</javac2>
<copy todir="${estructuras_de_datos.output.dir}">
<fileset dir="${module.estructuras_de_datos.basedir}/src">
<patternset refid="compiler.resources"/>
<type type="file"/>
</fileset>
</copy>
</target>
<target name="compile.module.estructuras_de_datos.tests" depends="register.custom.compilers,compile.module.estructuras_de_datos.production" description="compile module Estructuras de Datos; test classes" unless="skip.tests"/>
<target name="clean.module.estructuras_de_datos" description="cleanup module">
<delete dir="${estructuras_de_datos.output.dir}"/>
<delete dir="${estructuras_de_datos.testoutput.dir}"/>
</target>
<target name="init" description="Build initialization">
<!-- Perform any build initialization in this target -->
</target>
<target name="clean" depends="clean.module.estructuras_de_datos, clean.artifact.estructuras_de_datos" description="cleanup all"/>
<target name="build.modules" depends="init, clean, compile.module.estructuras_de_datos" description="build all modules"/>
<target name="init.artifacts">
<property name="artifacts.temp.dir" value="${basedir}/__artifacts_temp"/>
<property name="artifact.output.estructuras_de_datos" value="${basedir}/out/artifacts/Estructuras_de_Datos"/>
<mkdir dir="${artifacts.temp.dir}"/>
<property name="artifact.temp.output.Estructuras_de_Datos" value="${artifacts.temp.dir}/Estructuras_de_Datos.jar"/>
<taskdef resource="com/sun/javafx/tools/ant/antlib.xml" uri="javafx:com.sun.javafx.tools.ant" classpath="${jdk.home.1.8}/lib/ant-javafx.jar"/>
</target>
<target name="clean.artifact.estructuras_de_datos" description="clean Estructuras de Datos artifact output">
<delete dir="${artifact.output.estructuras_de_datos}"/>
</target>
<target name="artifact.estructuras_de_datos" depends="init.artifacts, compile.module.estructuras_de_datos" description="Build &#39;Estructuras de Datos&#39; artifact" xmlns:fx="javafx:com.sun.javafx.tools.ant">
<mkdir dir="${artifact.output.estructuras_de_datos}"/>
<copy todir="${artifact.temp.output.Estructuras_de_Datos}">
<fileset dir="${estructuras_de_datos.output.dir}"/>
</copy>
<fx:fileset id="all_but_Estructuras_de_Datos" dir="${artifact.temp.output.Estructuras_de_Datos}" includes="**/*.jar">
<exclude name="Estructuras_de_Datos.jar"/>
</fx:fileset>
<fx:fileset id="all_Estructuras_de_Datos" dir="${artifact.temp.output.Estructuras_de_Datos}" includes="**/*.jar"/>
<fx:application id="Estructuras_de_Datos_id" name="Estructuras de Datos" mainClass="cl.cromer.estructuras.Main"/>
<fx:jar destfile="${artifact.temp.output.Estructuras_de_Datos}/Estructuras_de_Datos.jar">
<fx:application refid="Estructuras_de_Datos_id"/>
<fileset dir="${artifact.temp.output.Estructuras_de_Datos}" excludes="**/*.jar"/>
<fx:resources>
<fx:fileset refid="all_but_Estructuras_de_Datos"/>
</fx:resources>
<manifest>
<attribute name="Created-By" value="Chris Cromer"/>
<attribute name="Class-Path" value="/cl/cromer/estructuras"/>
</manifest>
</fx:jar>
<fx:deploy width="1024" height="768" updatemode="background" outdir="${artifact.temp.output.Estructuras_de_Datos}/deploy" outfile="Estructuras_de_Datos" nativeBundles="all">
<fx:application refid="Estructuras_de_Datos_id"/>
<fx:info title="Estructuras de Datos" vendor="Chris Cromer"/>
<fx:resources>
<fx:fileset refid="all_Estructuras_de_Datos"/>
</fx:resources>
</fx:deploy>
<copy todir="${artifact.output.estructuras_de_datos}">
<fileset dir="${artifact.temp.output.Estructuras_de_Datos}/deploy"/>
</copy>
<delete includeemptydirs="true">
<fileset dir="${artifact.temp.output.Estructuras_de_Datos}"/>
</delete>
</target>
<target name="build.all.artifacts" depends="artifact.estructuras_de_datos" description="Build all artifacts">
<!-- Delete temporary files -->
<delete dir="${artifacts.temp.dir}"/>
</target>
<target name="all" depends="build.modules, build.all.artifacts" description="build all"/>
</project>

7
src/META-INF/MANIFEST.MF

@ -0,0 +1,7 @@
Manifest-Version: 1.0
Permissions: sandbox
JavaFX-Version: 8.0
Class-Path: /cl/cromer/estructuras
Created-By: Chris Cromer
Main-Class: cl.cromer.estructuras.Main

213
src/cl/cromer/estructuras/Array.java

@ -0,0 +1,213 @@
package cl.cromer.estructuras;
/**
* Crear una estructura de dato de tipo array.
* @author Chris Cromer
*/
public class Array {
/**
* El array.
*/
private String array[];
/**
* La cantidad de elementos en el array.
*/
private int size;
/**
* Si es de tipo ordenado o simple.
*/
private boolean ordered;
/**
* Crear el array con el tamaño pasador por argumento.
* @param temano int: El temaño del array a crear.
*/
public Array(int temano) {
this.array = new String[temano];
size = 0;
ordered = false;
}
/**
* Devolver la cantidad de elementos en el array.
* @return int: Devolver la cantidad de elementos en el array.
*/
public int size() {
return size;
}
/**
* Dovolver si el tipo es ordenado o no.
* @return boolean: Si el tipo de array es ordenado.
*/
public boolean isOrdered() {
return ordered;
}
/**
* Cambiar el tipo de array entre ordenado o simple.
* @param ordered boolean: Si es verdad, es de tipo ordenado, sino el tipo es simple.
*/
public void setOrdered(boolean ordered) {
this.ordered = ordered;
}
/**
* Insertar un valor al array.
* @param valor int: El valor a insertar.
* @return boolean: Verdad si fue exitoso, sino falso.
*/
public boolean insertar(int valor) {
for (int i = 0; i < array.length; i++) {
if (array[i] == null) {
array[i] = String.valueOf(valor);
size++;
return true;
}
else if (array[i].equals(String.valueOf(valor))) {
// Ya existe el valor en el array
return false;
}
}
return false;
}
/**
* Eliminar un valor del array si existe.
* @param valor int: El valor a eliminar.
* @return boolean: Verdad si fue encontrado y borrado, sino falso.
*/
public boolean eliminar(int valor) {
boolean borrado = false;
for (int i = 0; i < array.length; i++) {
if (array[i] != null && array[i].equals(String.valueOf(valor))) {
// Eliminar el valor
array[i] = null;
borrado=true;
size--;
if (ordered) {
for (int j = i; j < array.length; j++) {
if (j != array.length - 1) {
// Correr la array hacia arriba
array[j] = array[j + 1];
}
}
array[array.length-1] = null;
}
else {
break;
}
}
}
return borrado;
}
/**
* Buscar si existe un valor dentro el array.
* @param valor int: Valor a buscar.
* @return int: Devuelve el indice donde fue encontrado, o -1 si no fue encontrado.
*/
public int buscar(int valor) {
for (int i = 0; i < array.length; i++) {
if (array[i] != null && array[i].equals(String.valueOf(valor))) {
// Se encontró
return i;
}
}
// No se encontró
return -1;
}
/**
* Devolver el valor que está guardado en cada indice del array. Se usa para construir la grafica.
* @param indice int: El indice que desea ver.
* @return String: El valor que está en dicho indice.
*/
public String getIndice(int indice) {
if (indice >= 0 && indice < array.length) {
return array[indice];
}
else {
return null;
}
}
/**
* Ordenar el array usando burbuja.
* @param paso boolean: Si es verdad, solo hago en paso del ordenamiento, sino ordenear todos los elementos.
* @return boolean: Verdad si algo cambió, sino falso.
*/
public boolean burbuja(boolean paso) {
boolean cambio = false;
for (int i = size() - 1; i > 1; i--) {
for (int j = 0; j < i; j++) {
if (Integer.valueOf(array[j]) > Integer.valueOf(array[j+1])) {
String temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
cambio = true;
if (paso) {
return true;
}
}
}
}
return cambio;
}
/**
* Ordenar el array usando inserción.
* @param paso boolean: Si es verdad, solo hago en paso del ordenamiento, sino ordenear todos los elementos.
* @return boolean: Verdad si algo cambió, sino falso.
*/
public boolean insercion(boolean paso) {
boolean cambio = false;
for (int i = 1; i < size(); i++) {
String temp = array[i];
int j = i;
while (j > 0 && Integer.valueOf(array[j-1]) >= Integer.valueOf(temp)) {
array[j] = array[j-1];
--j;
cambio = true;
}
array[j] = temp;
if (paso && cambio) {
return true;
}
}
return cambio;
}
/**
* Ordenar el array usando selección.
* @param paso boolean: Si es verdad, solo hago en paso del ordenamiento, sino ordenear todos los elementos.
* @return boolean: Verdad si algo cambió, sino falso.
*/
public boolean seleccion(boolean paso) {
boolean cambio = false;
for (int i = 0; i < size() - 1; i++) {
int minimo = i;
for (int j = i + 1; j < size(); j++) {
if (Integer.valueOf(array[j]) < Integer.valueOf(array[minimo])) {
minimo = j;
cambio = true;
}
}
String temp = array[i];
array[i] = array[minimo];
array[minimo] = temp;
if (paso && cambio) {
return true;
}
}
return cambio;
}
}

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

@ -0,0 +1,282 @@
package cl.cromer.estructuras;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.VBox;
import javafx.scene.text.Text;
import java.net.URL;
import java.util.Random;
import java.util.ResourceBundle;
import java.util.Scanner;
import java.util.logging.Level;
/**
* Esta clase es para controlar todos la interfaz de Array.
* @author Chris Cromer
*/
public class ArrayController implements Initializable {
/**
* La caja para ingresar textos.
*/
@FXML private TextFieldLimited valorArray;
/**
* Donde poner el contenido de array.
*/
@FXML private VBox contenidoArray;
/**
* Donde va el codigo a mostrar a la pantalla.
*/
@FXML private Text codigoArray;
/**
* La escena donde está cosas graficas.
*/
private Scene scene;
/**
* Donde está guardado los idiomas.
*/
private ResourceBundle resourceBundle;
/**
* El array usado en la aplicación.
*/
private Array array;
/**
* 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;
scene = null;
Colores colores = new Colores();
for (int i = 0; i < 10; i++) {
contenidoArray.getChildren().addAll(Grafico.crearCaja(colores, String.valueOf(i)));
colores.siguinteColor();
}
}
/**
* Llenar el array con numeros al azar.
*/
@FXML
protected void botonLlenar() {
if (scene == null) {
initializeArray();
}
Random random = new Random();
int maximo = 99;
int minimo = 0;
int rango = maximo - minimo + 1;
for (int i = array.size(); i < 10; i++) {
int numero = random.nextInt(rango) + minimo;
while (array.buscar(numero) != -1) {
numero = random.nextInt(rango) + minimo;
}
array.insertar(numero);
}
generarGrafico();
}
/**
* Vaciar el array de todos los valores.
*/
@FXML
protected void botonVaciar() {
if (scene == null) {
initializeArray();
}
if (array.isOrdered()) {
array = new Array(10);
array.setOrdered(true);
}
else {
array = new Array(10);
array.setOrdered(false);
}
generarGrafico();
}
/**
* Insertar un valor al array y mostrar el codigo en la pantalla.
*/
@FXML
protected void botonInsertar() {
if (scene == null) {
initializeArray();
}
// Mostrar el codigo
String tipo = (array.isOrdered())?"Ordenado":"Simple";
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("")) {
try {
boolean exito = array.insertar(Integer.valueOf(valorArray.getText()));
if (exito) {
generarGrafico();
}
else {
ButtonType botonCerrar = new ButtonType(resourceBundle.getString("cerrar"), ButtonBar.ButtonData.OK_DONE);
Dialog<String> dialog = new Dialog<>();
dialog.setTitle(resourceBundle.getString("error"));
if (array.size() == 10) {
dialog.setContentText(resourceBundle.getString("arrayLleno"));
}
else {
dialog.setContentText(resourceBundle.getString("arrayValorExiste"));
}
dialog.getDialogPane().getButtonTypes().add(botonCerrar);
dialog.show();
}
}
catch (NumberFormatException exception) {
// El error no es fatal, sigue
Logs.log(Level.WARNING, "No es tipo int.");
errorNoValor();
}
}
else {
errorNoValor();
}
}
/**
* Eliminar un valor del array si existe y mostrar el codigo en la pantalla.
*/
@FXML
protected void botonEliminar() {
if (scene == null) {
initializeArray();
}
// Mostrar el codigo
String tipo = (array.isOrdered())?"Ordenado":"Simple";
String codigoTexto = new Scanner(getClass().getResourceAsStream("/cl/cromer/estructuras/code/array" + tipo + "/eliminar")).useDelimiter("\\Z").next();
codigoArray.setText(codigoTexto);
try {
if (valorArray.getText() != null && !valorArray.getText().trim().equals("")) {
boolean exito = array.eliminar(Integer.valueOf(valorArray.getText()));
if (exito) {
generarGrafico();
}
else {
errorNoEsta();
}
}
else {
errorNoValor();
}
}
catch (NumberFormatException exception) {
// El error no es fatal, sigue
Logs.log(Level.WARNING, "No es tipo int.");
errorNoValor();
}
}
/**
* Buscar si existe un elemento en el array y mostrar el codigo en la pantalla
* Si existe el valor destacarlo.
*/
@FXML
protected void botonBuscar() {
if (scene == null) {
initializeArray();
}
// Mostrar el codigo
String tipo = (array.isOrdered())?"Ordenado":"Simple";
String codigoTexto = new Scanner(getClass().getResourceAsStream("/cl/cromer/estructuras/code/array" + tipo + "/buscar")).useDelimiter("\\Z").next();
codigoArray.setText(codigoTexto);
try {
if (valorArray.getText() != null && !valorArray.getText().trim().equals("")) {
int encontrado = array.buscar(Integer.valueOf(valorArray.getText()));
if (encontrado != -1) {
generarGrafico();
grafico = new Grafico(scene);
grafico.destacer(encontrado, "rectangulo");
}
else {
errorNoEsta();
}
}
else {
errorNoValor();
}
}
catch (NumberFormatException exception) {
// El error no es fatal, sigue
Logs.log(Level.WARNING, "No es tipo int.");
errorNoValor();
}
}
/**
* Se muestra un error si la persona no ingresa un valor en el TextField.
*/
private void errorNoValor() {
ButtonType botonCerrar = new ButtonType(resourceBundle.getString("cerrar"), ButtonBar.ButtonData.OK_DONE);
Dialog<String> dialog = new Dialog<>();
dialog.setTitle(resourceBundle.getString("error"));
dialog.setContentText(resourceBundle.getString("arrayNoValor"));
dialog.getDialogPane().getButtonTypes().add(botonCerrar);
dialog.show();
}
/**
* Error cuando el valor no está en el array.
*/
private void errorNoEsta() {
ButtonType botonCerrar = new ButtonType(resourceBundle.getString("cerrar"), ButtonBar.ButtonData.OK_DONE);
Dialog<String> dialog = new Dialog<>();
dialog.setTitle(resourceBundle.getString("error"));
dialog.setContentText(resourceBundle.getString("arrayNoEsta"));
dialog.getDialogPane().getButtonTypes().add(botonCerrar);
dialog.show();
}
/**
* Crear el array de temaño 10. La scene está usado para saber si es de tipo ordenado o simple segun el ménu.
*/
private void initializeArray() {
scene = contenidoArray.getScene();
grafico = new Grafico(scene);
this.array = new Array(10);
Array array = (Array) scene.getUserData();
this.array.setOrdered(array.isOrdered());
}
/**
* Poner los valores en el grafico.
*/
private void generarGrafico() {
grafico.removerDestacar();
for (int i = 0; i < 10; i++) {
Text text = (Text) scene.lookup("#caja_" + String.valueOf(i));
text.setText(array.getIndice(i));
}
}
}

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

@ -0,0 +1,174 @@
package cl.cromer.estructuras;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.Scene;
import javafx.scene.control.ButtonBar;
import javafx.scene.control.ButtonType;
import javafx.scene.control.Dialog;
import javafx.scene.layout.HBox;
import javafx.scene.text.Text;
import java.net.URL;
import java.util.Random;
import java.util.ResourceBundle;
import java.util.Scanner;
/**
* Esta clase es para controlar todos la interfaz de Burbuja.
* @author Chris Cromer
*/
public class BurbujaController implements Initializable {
/**
* Donde poner el contenido de array.
*/
@FXML private HBox contenidoBurbuja;
/**
* Donde va el codigo a mostrar a la pantalla.
*/
@FXML private Text codigoBurbuja;
/**
* La escena donde está cosas graficas.
*/
private Scene scene;
/**
* Donde está guardado los idiomas.
*/
private ResourceBundle resourceBundle;
/**
* El array usado en la aplicación.
*/
private Array array;
/**
* 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;
scene = null;
Colores colores = new Colores();
Random random = new Random();
int maximo = 99;
int minimo = 0;
int rango = maximo - minimo + 1;
array = new Array(10);
array.setOrdered(true);
for (int i = 0; i < 10; i++) {
int numero = random.nextInt(rango) + minimo;
while (array.buscar(numero) != -1) {
numero = random.nextInt(rango) + minimo;
}
array.insertar(numero);
contenidoBurbuja.getChildren().addAll(Grafico.crearCaja(colores, String.valueOf(i), String.valueOf(numero)));
colores.siguinteColor();
}
}
/**
* Crear un array nuevo.
*/
@FXML
protected void botonNuevo() {
if (scene == null) {
initializeScene();
}
array = new Array(10);
array.setOrdered(true);
Random random = new Random();
int maximo = 99;
int minimo = 0;
int rango = maximo - minimo + 1;
for (int i = array.size(); i < 10; i++) {
int numero = random.nextInt(rango) + minimo;
while (array.buscar(numero) != -1) {
numero = random.nextInt(rango) + minimo;
}
array.insertar(numero);
}
generarGrafico();
}
/**
* Ordenarlo paso por paso.
*/
@FXML
protected void botonPaso() {
if (scene == null) {
initializeScene();
}
// Mostrar el codigo
String codigoTexto = new Scanner(getClass().getResourceAsStream("/cl/cromer/estructuras/code/burbuja/ordenar")).useDelimiter("\\Z").next();
codigoBurbuja.setText(codigoTexto);
if (!array.burbuja(true)) {
errorYaOrdenado();
}
generarGrafico();
}
/**
* Ordenarlo completamente.
*/
@FXML
protected void botonCorrer() {
if (scene == null) {
initializeScene();
}
// Mostrar el codigo
String codigoTexto = new Scanner(getClass().getResourceAsStream("/cl/cromer/estructuras/code/burbuja/ordenar")).useDelimiter("\\Z").next();
codigoBurbuja.setText(codigoTexto);
if (!array.burbuja(false)) {
errorYaOrdenado();
}
generarGrafico();
}
/**
* Se muestra un error si el array ya está ordenado.
*/
private void errorYaOrdenado() {
ButtonType botonCerrar = new ButtonType(resourceBundle.getString("cerrar"), ButtonBar.ButtonData.OK_DONE);
Dialog<String> dialog = new Dialog<>();
dialog.setTitle(resourceBundle.getString("error"));
dialog.setContentText(resourceBundle.getString("burbujaYaOrdenado"));
dialog.getDialogPane().getButtonTypes().add(botonCerrar);
dialog.show();
}
/**
* Crear el array de temaño 10.
*/
private void initializeScene() {
scene = contenidoBurbuja.getScene();
}
/**
* Poner los valores en el grafico.
*/
private void generarGrafico() {
for (int i = 0; i < 10; i++) {
Text text = (Text) scene.lookup("#caja_" + String.valueOf(i));
text.setText(array.getIndice(i));
}
}
}

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

@ -0,0 +1,101 @@
package cl.cromer.estructuras;
/**
* Crear una estructura de dato de tipo cola.
* @author Chris Cromer
*/
public class Cola {
/**
* La cola.
*/
private String cola[];
/**
* La cantidad de elementos que están en la cola.
*/
private int size;
/**
* Inicializar.
*/
public Cola() {
this.cola = null;
size = 0;
}
/**
* Devolver la cantidad de elementos que están en la cola.
* @return int: La cantidad de elementos.
*/
public int size() {
return 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++;
}
}
/**
* 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;
}
}
/**
* 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 (indice >= 0 && indice < cola.length) {
return cola[indice];
}
else {
return null;
}
}
}

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

@ -0,0 +1,236 @@
package cl.cromer.estructuras;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.Scene;
import javafx.scene.control.ButtonBar;
import javafx.scene.control.ButtonType;
import javafx.scene.control.Dialog;
import javafx.scene.layout.VBox;
import javafx.scene.text.Text;
import java.net.URL;
import java.util.Random;
import java.util.ResourceBundle;
import java.util.Scanner;
import java.util.logging.Level;
/**
* Esta clase es para controlar todos la interfaz de Cola.
* @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);
}
Random random = new Random();
int maximo = 99;
int minimo = 0;
int rango = maximo - minimo + 1;
for (int i = cola.size(); i < 10; i++) {
int numero = random.nextInt(rango) + minimo;
cola.push(numero);
}
generarGrafico();
}
/**
* 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