Browse Source

Reordered code.

master
Chris Cromer 5 years ago
parent
commit
788db3dbb9
  1. 11
      .idea/artifacts/Estructuras_de_Datos.xml
  2. 8
      .idea/codeStyleSettings.xml
  3. 513
      estructuras_de_datos.xml
  4. 3
      src/META-INF/MANIFEST.MF
  5. 108
      src/cl/cromer/estructuras/Array.java
  6. 456
      src/cl/cromer/estructuras/ArrayController.java
  7. 240
      src/cl/cromer/estructuras/BurbujaController.java
  8. 80
      src/cl/cromer/estructuras/Cola.java
  9. 22
      src/cl/cromer/estructuras/ColaController.java
  10. 240
      src/cl/cromer/estructuras/InsercionController.java
  11. 62
      src/cl/cromer/estructuras/ListaEnlazada.java
  12. 82
      src/cl/cromer/estructuras/ListaEnlazadaCircular.java
  13. 736
      src/cl/cromer/estructuras/ListaEnlazdaController.java
  14. 82
      src/cl/cromer/estructuras/Main.java
  15. 192
      src/cl/cromer/estructuras/MenuController.java
  16. 240
      src/cl/cromer/estructuras/MergeController.java
  17. 66
      src/cl/cromer/estructuras/Pila.java
  18. 22
      src/cl/cromer/estructuras/PilaController.java
  19. 240
      src/cl/cromer/estructuras/QuickController.java
  20. 34
      src/cl/cromer/estructuras/SeleccionController.java
  21. 34
      src/cl/cromer/estructuras/ShellController.java
  22. 60
      src/cl/cromer/estructuras/TablaHash.java
  23. 458
      src/cl/cromer/estructuras/TablaHashController.java
  24. 25
      src/cl/cromer/estructuras/code/tablaHash/buscar
  25. 30
      src/cl/cromer/estructuras/code/tablaHash/eliminar
  26. 13
      src/cl/cromer/estructuras/code/tablaHash/insertar
  27. 8
      src/cl/cromer/estructuras/css/main.css
  28. 17
      src/cl/cromer/estructuras/css/style.css
  29. 2
      src/cl/cromer/estructuras/fxml/tablaHash.fxml

11
.idea/artifacts/Estructuras_de_Datos.xml

@ -27,10 +27,17 @@
<option name="name" value="Class-Path" />
<option name="value" value="/cl/cromer/estructuras" />
</JavaFxManifestAttribute>
<JavaFxManifestAttribute>
<option name="name" value="Codebase" />
<option name="value" value="*.cromer.cl 127.0.0.1" />
</JavaFxManifestAttribute>
<JavaFxManifestAttribute>
<option name="name" value="Application-Name" />
<option name="value" value="Estructuras de Datos" />
</JavaFxManifestAttribute>
</list>
</option>
<option name="description" value="" />
<option name="enabledSigning" value="true" />
<option name="description" value="Esta aplicación muestra varios tipos de estrucuras de datos visualmente." />
<option name="height" value="768" />
<option name="htmlParamFile" value="" />
<option name="keystore" value="" />

8
.idea/codeStyleSettings.xml

@ -2,8 +2,12 @@
<project version="4">
<component name="ProjectCodeStyleSettingsManager">
<option name="PER_PROJECT_SETTINGS">
<value />
<value>
<XML>
<option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" />
</XML>
</value>
</option>
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default (1)" />
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Cromer" />
</component>
</project>

513
estructuras_de_datos.xml

@ -1,269 +1,250 @@
<?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 xmlns:fx="javafx:com.sun.javafx.tools.ant" name="artifact.estructuras_de_datos"
depends="init.artifacts, compile.module.estructuras_de_datos"
description="Build &#39;Estructuras de Datos&#39; artifact">
<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"/>
<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"/>
<attribute name="Codebase" value="*.cromer.cl 127.0.0.1"/>
<attribute name="Application-Name" value="Estructuras de Datos"/>
</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" description="Esta aplicación muestra varios tipos de estrucuras de datos visualmente."/>
<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>

3
src/META-INF/MANIFEST.MF

@ -1,7 +1,8 @@
Manifest-Version: 1.0
Permissions: sandbox
Codebase: *.cromer.cl 127.0.0.1
JavaFX-Version: 8.0
Class-Path: /cl/cromer/estructuras
Created-By: Chris Cromer
Main-Class: cl.cromer.estructuras.Main
Application-Name: Estructuras de Datos

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

@ -52,6 +52,28 @@ final public class Array {
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.
*
@ -85,18 +107,29 @@ final public class Array {
}
/**
* Devolver el valor que está guardado en cada indice del array. Se usa para construir la grafica.
* Buscar si existe un valor dentro el array.
*
* @param indice int: El indice que desea ver.
* @param valor int: Valor a buscar.
*
* @return String: El valor que está en dicho indice.
* @return int: Devuelve el indice donde fue encontrado, o -1 si no fue encontrado.
*/
public String getIndice(int indice) {
if (indice >= 0 && indice < array.length) {
return array[indice];
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;
}
}
else {
return null;
// No se encontró
return - 1;
}
/**
* Borrar el array para que sea como nuevo.
*/
public void nuevo() {
for (int i = 0; i < size(); i++) {
array[i] = null;
}
}
@ -119,61 +152,28 @@ final public class Array {
}
/**
* Devolver la cantidad de elementos en el array.
*
* @return int: Devolver la cantidad de elementos en el array.
*/
public int size() {
return size;
}
/**
* Buscar si existe un valor dentro el array.
* Devolver el valor que está guardado en cada indice del array. Se usa para construir la grafica.
*
* @param valor int: Valor a buscar.
* @param indice int: El indice que desea ver.
*
* @return int: Devuelve el indice donde fue encontrado, o -1 si no fue encontrado.
* @return String: El valor que está en dicho indice.
*/
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;
}
public String getIndice(int indice) {
if (indice >= 0 && indice < array.length) {
return array[indice];
}
// No se encontró
return - 1;
}
/**
* 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;
}
else {
return null;
}
return false;
}
/**
* Borrar el array.
* Devolver la cantidad de elementos en el array.
*
* @return int: Devolver la cantidad de elementos en el array.
*/
public void nuevo() {
for (int i = 0; i < size(); i++) {
array[i] = null;
}
public int size() {
return size;
}
/**

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

@ -18,233 +18,233 @@ import java.util.logging.Level;
*/
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();
}
array.llenar();
generarGrafico();
}
/**
* Crear el array de tamañ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);
ArrayTipos arrayTipos = (ArrayTipos) scene.getUserData();
if (arrayTipos.getTipo() == ArrayTipos.ORDENADO) {
this.array.setOrdered(true);
}
}
/**
* 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(array.getIndice(i));
}
}
/**
* 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) {
valorArray.setText("");
generarGrafico();
}
else {
if (array.size() == 10) {
Main.mostrarError(resourceBundle.getString("arrayLleno"), resourceBundle);
}
else {
Main.mostrarError(resourceBundle.getString("arrayValorExiste"), resourceBundle);
}
}
}
catch (NumberFormatException exception) {
// El error no es fatal, sigue
Logs.log(Level.WARNING, "No es tipo int.");
Main.mostrarError(resourceBundle.getString("arrayNoValor"), resourceBundle);
}
}
else {
Main.mostrarError(resourceBundle.getString("arrayNoValor"), resourceBundle);
}
}
/**
* 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) {
valorArray.setText("");
generarGrafico();
}
else {
Main.mostrarError(resourceBundle.getString("arrayNoEsta"), resourceBundle);
}
}
else {
Main.mostrarError(resourceBundle.getString("arrayNoValor"), resourceBundle);
}
}
catch (NumberFormatException exception) {
// El error no es fatal, sigue
Logs.log(Level.WARNING, "No es tipo int.");
Main.mostrarError(resourceBundle.getString("arrayNoValor"), resourceBundle);
}
}
/**
* 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.destacar("#caja_" + encontrado, Grafico.RECTANGULO);
grafico.destacar("#texto_" + encontrado, Grafico.TEXTO);
}
else {
Main.mostrarError(resourceBundle.getString("arrayNoEsta"), resourceBundle);
}
}
else {
Main.mostrarError(resourceBundle.getString("arrayNoValor"), resourceBundle);
}
}
catch (NumberFormatException exception) {
// El error no es fatal, sigue
Logs.log(Level.WARNING, "No es tipo int.");
Main.mostrarError(resourceBundle.getString("arrayNoValor"), resourceBundle);
}
/**
* 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();
}
array.llenar();
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) {
valorArray.setText("");
generarGrafico();
}
else {
if (array.size() == 10) {
Main.mostrarError(resourceBundle.getString("arrayLleno"), resourceBundle);
}
else {
Main.mostrarError(resourceBundle.getString("arrayValorExiste"), resourceBundle);
}
}
}
catch (NumberFormatException exception) {
// El error no es fatal, sigue
Logs.log(Level.WARNING, "No es tipo int.");
Main.mostrarError(resourceBundle.getString("arrayNoValor"), resourceBundle);
}
}
else {
Main.mostrarError(resourceBundle.getString("arrayNoValor"), resourceBundle);
}
}
/**
* 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) {
valorArray.setText("");
generarGrafico();
}
else {
Main.mostrarError(resourceBundle.getString("arrayNoEsta"), resourceBundle);
}
}
else {
Main.mostrarError(resourceBundle.getString("arrayNoValor"), resourceBundle);
}
}
catch (NumberFormatException exception) {
// El error no es fatal, sigue
Logs.log(Level.WARNING, "No es tipo int.");
Main.mostrarError(resourceBundle.getString("arrayNoValor"), resourceBundle);
}
}
/**
* 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.destacar("#caja_" + encontrado, Grafico.RECTANGULO);
grafico.destacar("#texto_" + encontrado, Grafico.TEXTO);
}
else {
Main.mostrarError(resourceBundle.getString("arrayNoEsta"), resourceBundle);
}
}
else {
Main.mostrarError(resourceBundle.getString("arrayNoValor"), resourceBundle);
}
}
catch (NumberFormatException exception) {
// El error no es fatal, sigue
Logs.log(Level.WARNING, "No es tipo int.");
Main.mostrarError(resourceBundle.getString("arrayNoValor"), resourceBundle);
}
}
/**
* Crear el array de tamañ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);
ArrayTipos arrayTipos = (ArrayTipos) scene.getUserData();
if (arrayTipos.getTipo() == ArrayTipos.ORDENADO) {
this.array.setOrdered(true);
}
}
/**
* 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(array.getIndice(i));
}
}
}

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

@ -16,126 +16,126 @@ import java.util.Scanner;
* @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
@SuppressWarnings("Duplicates")
public void initialize(URL location, ResourceBundle resourceBundle) {
this.resourceBundle = resourceBundle;
scene = null;
Colores colores = new Colores();
array = new Array(10);
array.setOrdered(true);
array.llenar();
for (int i = 0; i < 10; i++) {
contenidoBurbuja.getChildren().addAll(Grafico.crearCaja(colores, String.valueOf(i), String.valueOf(array.getIndice(i))));
colores.siguinteColor();
}
}
/**
* Crear un array nuevo.
*/
@FXML
protected void botonNuevo() {
if (scene == null) {
initializeScene();
}
array.nuevo();
array.llenar();
generarGrafico();
}
/**
* Crear el array de tamañ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("#texto_" + String.valueOf(i));
text.setText(array.getIndice(i));
}
}
/**
* 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)) {
Main.mostrarError(resourceBundle.getString("burbujaYaOrdenado"), resourceBundle);
}
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)) {
Main.mostrarError(resourceBundle.getString("burbujaYaOrdenado"), resourceBundle);
}
/**
* 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
@SuppressWarnings("Duplicates")
public void initialize(URL location, ResourceBundle resourceBundle) {
this.resourceBundle = resourceBundle;
scene = null;
Colores colores = new Colores();
array = new Array(10);
array.setOrdered(true);
array.llenar();
for (int i = 0; i < 10; i++) {
contenidoBurbuja.getChildren().addAll(Grafico.crearCaja(colores, String.valueOf(i), String.valueOf(array.getIndice(i))));
colores.siguinteColor();
}
}
/**
* Crear un array nuevo.
*/
@FXML
protected void botonNuevo() {
if (scene == null) {
initializeScene();
}
array.nuevo();
array.llenar();
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)) {
Main.mostrarError(resourceBundle.getString("burbujaYaOrdenado"), resourceBundle);
}
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)) {
Main.mostrarError(resourceBundle.getString("burbujaYaOrdenado"), resourceBundle);
}
generarGrafico();
}
}
/**
* Crear el array de tamañ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("#texto_" + String.valueOf(i));
text.setText(array.getIndice(i));
}
}
}

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

@ -26,6 +26,30 @@ final public class Cola {
size = 0;
}
/**
* 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.
*
@ -59,6 +83,22 @@ final public class Cola {
}
}
/**
* 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);
}
}
/**
* Devolver la cantidad de elementos que están en la cola.
*
@ -83,44 +123,4 @@ final public class Cola {
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;
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++;
}
}
}

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

@ -90,17 +90,6 @@ public class ColaController implements Initializable {
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.
*/
@ -203,4 +192,15 @@ public class ColaController implements Initializable {
Main.mostrarError(resourceBundle.getString("colaVacia"), resourceBundle);
}