elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Arboles Binarios en C(Construcción Re cursiva)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Arboles Binarios en C(Construcción Re cursiva)  (Leído 1,310 veces)
NericSain

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Arboles Binarios en C(Construcción Re cursiva)
« en: 30 Mayo 2018, 00:31 am »

HOLA AMIGOS, HACE UNOS DIAS SUBI MI PROBLEMA DE ARBOLES BINARIOS, PERO CREO QUE NO PUDE EXPLICARME BIEN, ESPERABA QUE ESTA VEZ ALGUIEN EN ESTE BASTO MUNDO DEL INTERWEB, PUDIERA AYUDARME, PUES ESTE EJERCICIO YA ME TIRO TODA UNA SEMANA DE TRABAJO SIN PODER RESOLVERLO. ESTE ES UN ALGORITMO ESCRITO QUE EN TEORÍA DESCRIBE COMO SERA LA FUNCIÓN QUE HAGA LA CONSTRUCCIÓN(NO BÚSQUEDA, NI IMPRESIÓN...ETC), SINO CONSTRUCCIÓN DE UN ÁRBOL DE EXPRESIONES
https://ibb.co/fFOsvy


ESPERO ALGUIEN ME PUEDA AYUDAR


PDT, YA ESCRIBI CODIGO, PERO SE ME DETIENE, EL PROGRAMA O SI MODIIFCO NO ME IMPRIME BIEN EL ARBOL



En línea

srWhiteSkull


Desconectado Desconectado

Mensajes: 444



Ver Perfil WWW
Re: Arboles Binarios en C(Construcción Re cursiva)
« Respuesta #1 en: 30 Mayo 2018, 13:14 pm »

Pero no pone en lo que muestras que debas usar recursividad para la creación del árbol, sólo te indica el proceso para crearlo y eso puedes hacerlo con una simple iteración (un bucle) y funciones para gestionar el árbol, en las que si podrías usar recursión.

Así por lo primero que leo, los dos primeros puntos, entiendo que cada vez que se crea un nodo, izquierdo o derecho, este se agrega a una pila, que podría ser perfectamente usando un vector(un objeto de c++), por medio de la función push. Luego este puntero, por lo que entendí, se usa para el campo de valor del nodo y se hace un pop una vez se extrae del vector o pila, pero sólo es extraído cuando en el recorrido de la cadena, la que contiene la operación "(9+8...)" encuentra un operador... operador aritmético me imagino, o sea un + * / o lo que sea...

En resumen, mejor usa un bucle y recorre la fórmula carácter a carácter y según el carácter  pues sigues las reglas del ejercicio, como por ejemplo si es un paréntesis derecho o un espacio blanco no hacer nada.

Aunque el ejercicio no tenga ninguna funcionalidad o utilidad práctica, quien vaya a evaluarlo querrá ver un árbol que se ajuste a las reglas del ejercicio.

Y ya para acabar, si no consigues mostrar el árbol completamente es sencillamente porque no has entendido el ejemplo que te puse, que la verdad lo hice lo más sencillo posible para que pudieras entenderlo. La función recursiva simplemente es una de las muchas formas de recorrer un árbol pero con la ventaja de no pasar por el mismo nodo dos veces a costa de comer muchos recursos, pero también puedes usar un bucle e ir creando un mapa para evitar repetir la misma ramificación y saltarte los nodos ya visitados.

Eso si, no espere que te resolvamos el ejercicio con código, sólo te podemos orientar. Si en verdad te gusta la programación y esperas ser un gran programador seguro que lo consigues, y de seguro sentirás una gran satisfacción personal y te ayudará a solucionar en un futuro grandes desafíos algorítmicos. Así que ánimo, si te cuesta comprenderlo haz un dibujo, simula las operaciones con trazas en papel y crea los nodos (como si estuvieras depurando), intenta visualizarlo para que lo comprendas mejor, yo uso esta técnica en algoritmos muy enrevesados.

PD Acuérdate de amputar o podar los nodos cada vez que hagas uno nuevo (con NULL), de esa forma al recorrerlo sabrás donde acaba y además si no lo haces la aplicación puede romperse, porque cuando trabajas con memoria a bajo nivel como en C++ los punteros siempre están sucios y debes gestionarlos tú.


« Última modificación: 30 Mayo 2018, 13:22 pm por srWhiteSkull » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Arboles binarios
Programación C/C++
josue_tux 3 9,986 Último mensaje 9 Mayo 2010, 20:18 pm
por leogtz
Arboles binarios
Java
soser 0 1,897 Último mensaje 27 Octubre 2010, 08:45 am
por soser
Arboles Binarios c++
Programación C/C++
maferavagar 3 2,487 Último mensaje 8 Julio 2015, 11:20 am
por ivancea96
Arboles Binarios en C++
Programación C/C++
pedro0620 0 1,564 Último mensaje 3 Octubre 2016, 05:10 am
por pedro0620
Arboles Binarios en C
Programación C/C++
NericSain 2 1,471 Último mensaje 24 Mayo 2018, 01:28 am
por NericSain
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines