Ir al contenido principal

Convertir un árbol n-ario a binario



Un árbol es una estructura de datos muy importante en el mundo de la programación, sin embargo el tipo de árbol que se usa comúnmente por sus propiedades es el árbol binario (árbol donde cada nodo tiene a lo máximo 2 nodos descendientes o nodos  hijo). Es muy natural definir arboles n-arios (arboles donde los nodos pueden tener cualquier cantidad de hijos) y para usar las propiedades de los arboles binarios hacer la respectiva conversión.




Si tenemos como inicio al siguiente árbol n-ario, el algoritmo de conversión es muy sencillo y se explicara gráficamente a continuación:
Empezamos por la raíz, la raíz sigue siendo la misma para el árbol binario, a continuación el hijo mas de la izquierda de la raíz para a ser hijo inmediato izquierdo de la raíz y los demás hijos de la raíz se van colocando por orden.
El segundo hijo de la raíz pasa a ser hijo derecho del primer hijo, y asi sucesivamente con los demás hijos que pasan a ser hijos derechos siempre se su hermano anterior.
Luego pasamos a hacer lo mismo con los hijos de la raíz. Empezamos con el nodo B (en este ejemplo) y colocamos a su primer hijo de mas a la izquierda cono su hijo inmediato a la izquierda y los demás a la derecha de manera consecutiva.
Pasamos al siguiente nodo (Nodo F en este ejemplo) al otro hijo que tienes hijos, y hacemos lo mismo.

Terminado esto pasamos a los siguientes nodos hijo, culminando así y llegando al siguiente árbol.
Como podemos observar el algoritmo es sencillo, lo que falta por hacer es implementarlo en un lenguaje de programación si lo piden estará en poco tiempo publicado por este medio.

Comentarios

  1. hola disculpa daniel a mi me pidieron algo parecido a lo que describes anteriormente pero en c++ sera me podrias ayudar soy un poco novata en c++ gracias jessi

    ResponderEliminar
  2. ¡Muchas gracias! Estoy con un examen mañana y me ha caído perfecto el contenido.

    ResponderEliminar
  3. Me interesa el codigo en Java desarrollado en el IDE NetBeans

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Leer y generar códigos con ZXing

Esta es una guía definitiva para usar la librería ZXing en nuestras aplicaciones Android y esta basada en parte en otras guías como  jstyl8.blogspot.com  y  androideity.com ,  pero explicado de forma sencilla y con casos actuales. Primero se explicara lo que es ZXing, donde obtenerlo, luego se mostrará como usarlo en una aplicación Android tanto para leer códigos y generarlos. Ver nuevo tutorial actualizado Introducción a ZXing ZXing es una librería procesadora de imágenes multi-formato en 1D/2D y de código abierto. Actualmente es capaz de reconocer los formatos  UPC-A, UPC-E,  EAN-8, EAN-13,  Códigos  39, 93, 128, ITF, Codabar, RSS-14 (en todas sus variantes), Matriz de datos (Data Matrix), Aztec, PDF 417 y por supuesto los populares códigos QR, muy usados desde que la tecnología móvil esta presente en nuestras vidas. Si hablamos de los códigos QR,  Zxing tiene su propio generador online zxing.appspot.com , pero también existe  www.unitaglive.com  que es prácticame

La mejor opción para descargar vídeos de Youtube, Vimeo y otros

Para descargar vídeos de Youtube y otras paginas siempre hemos tenido múltiples opciones, desde copiar archivos temporales del navegador que eran los vídeos en formato FLV, programas de escritorio que descargaban en flv y luego lo convertirla a cualquier formato y servicios web que te ofrecían descargas, múltiples opciones pero ahora mostraremos una de las mejores sino la mejor. Keepvid es una aplicación web que descarga videos de paginas de Youtube , Vimeo , Blip  y muchos otros, entre las características, es que es gratuito, nada de registrarse, dos clics para descargar un vídeo, múltiples formatos de vídeo, FLV, MP4, WebM, si esta disponible en HD y Full HD y también si deseamos solo audio podemos descargar en formato MP3, una de las desventajas (si se puede llamar así) es que usa Java para descargar los vídeos, es decir necesitamos tener Java instalado para el explorador, casi no un problema pues probablemente ya lo tenemos instalado o sino lo instalamos en algunos minutos. La