java

Java: ingresar palabra en árbol binario

Hoy vamos a resolver un ejercicio de Java. Se trata de solicitar una palabra y almacenarla en un árbol binario de búsqueda o ABB. El mismo dice así:

  • Diseñar un programa en Java que ingrese una palabra mínima de 10 caracteres (se debe realizar la verificación de que no acepte frases), proceda a
    separar carácter a carácter y guardarlos en un ABB
  • Recuerde que la primera letra será la Raíz.
  • Es importante indicar que todo debe ser ejecutado en consola.
  • El programa debe tener mínimo las siguientes opciones: Ingresar, Visualizar (pre-orden, post-orden e in-orden) y Finalizar.
  • El programa debe tener al menos 3 clases.

Explicación del algoritmo

Esto se divide en dos partes: la implementación de un árbol binario y la lectura de la palabra junto con su validación.

Entonces primero debes tener el árbol binario con el tipo de dato String. Yo he tomado el ejemplo de árbol binario que yo mismo hice, y lo he adaptado a este nuevo tipo de dato usando compareTo y equals para comparar las cadenas.

Por otro lado vamos a validar la cadena (comprobar su longitud y ver si no es una frase), separarla (recorrerla con charAt y convirtiendo el char a String) y agregar cada letra al árbol.

El nodo

Para este ejercicio de agregar las letras de una palabra a un árbol binario usando Java necesitamos un nodo de tipo String:

See the gist on github.

Si no entiendes bien lo que se está haciendo, lee mi post sobre árboles binarios y nodos en Java, pues ahí lo expliqué a fondo. Aquí solo lo estoy adaptando.

Árbol

Ahora veamos el ABB que va a tener los nodos, en donde cada nodo tendrá una letra de la palabra:

See the gist on github.

Ya tenemos nuestro árbol preparado, ahora solo falta que le agreguemos letras.

Validando palabra

El ejercicio solicita que la longitud de la palabra sea de 10 como mínimo y que no se ingresen frases.

Yo entiendo como frase a una cadena que lleva un espacio, cosa que podemos detectar con indexOf, mismo que devuelve el índice de una subcadena o -1 si la misma no se encuentra.

Entonces tenemos un ciclo infinito que solo se romperá con el return en caso de que pase ambas validaciones.

See the gist on github.

Insertar palabra en árbol

Finalmente vamos a combinar los métodos y clases para solucionar el ejercicio. En este caso tenemos otro método que devolverá el Árbol binario de Java lleno con las letras de la palabra:

See the gist on github.

Recorremos la cadena en la línea 4 e insertamos la letra (después de convertirla) en la línea 7, comprobando antes que no exista en el árbol.

Menú

Debemos tener la opción de ingresar la palabra y de visualizarla en los 3 recorridos que son postorden, inorden y preorden. El menú queda así:

See the gist on github.

Dependiendo de la opción invocamos a una u otra función.

Explicación en vídeo

Poniendo todo junto

Programación Java – Ingresar palabra letra por letra en Árbol binario

El código completo queda como se ve a continuación. Puedes ejecutar esto en Netbeans, IntelliJ IDEA, etcétera. Yo lo compilo en la terminal y uso VSCode.

See the gist on github.

Por aquí te dejo más tutoriales y ejercicios resueltos de Java.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

  • Como podría pedir todo eso que pides desde consola usando un JOptionPane, lo del menu ya lo tengo pero cuando ingrese la cadena de caracteres el programa se rompe

    • Por supuesto, estaré encantado de ayudarle más a fondo. Ofrezco servicios de consultoría personalizados para resolver problemas específicos. Si está interesado, envíeme un mensaje a https://parzibyte.me/#contacto y podemos conversar sobre cómo puedo ayudarle.

Entradas recientes

JavaScript (lado del cliente): leer pixeles de imagen

En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…

3 días hace

PHP y JavaScript: llenar select con AJAX

Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…

3 días hace

Imprimir PDF generado con HTML

Hoy vamos a ver programar la impresión de un PDF generado a partir de HTML…

5 días hace

JavaScript: llenar select con arreglo

En este tutorial básico de JavaScript con HTML vamos a ver cómo llenar una lista…

1 semana hace

Imprimir PDF a partir de URL

En este artículo se presenta una guía para imprimir un PDF a partir de una…

1 semana hace

Imprimir PDF a partir de base64

En este post voy a enseñarte cómo imprimir un PDF a partir de su representación…

2 semanas hace

Esta web usa cookies.