|
652
|
Programación / Programación C/C++ / Re: [C++] Problema con Arbol binario
|
en: 1 Marzo 2017, 13:31 pm
|
Si ya tienes la función de contar nodos hecha (si no la tienes o te da problemas, ponla por aquí), ya solo falta poner condiciones despues de los 2 if NULL.
De todos modos, para empezar, si ni la derecha ni la izquierda son NULL, haz que lo inserte siempre en la izquierda. No está bien, pero es el comienzo. Luego, ya solo será poner una comprobación para ver que nodo tiene más elementos.
|
|
|
654
|
Programación / Programación C/C++ / Re: [C++] Problema con Arbol binario
|
en: 1 Marzo 2017, 12:45 pm
|
Lo dicho. Tu código rellena 1 capa. Luego, ya no hace más. Tienes que ponerle que, si el nodo ya está completo, inserte en los nodos de abajo. Para elegir en qué nodo insertar, puedes mirar cual tiene menos elementos, si el izquierdo o el derecho. Si el derecho tiene menos elementos, insertas ahí. Sinó, en el izquierdo. (Para contar elementos, o almacenas una variable en el nodo de la cantidad de elementos que tiene, o haces una función recursiva)
|
|
|
658
|
Programación / Programación C/C++ / Re: Errores raros después de una compilación normal
|
en: 27 Febrero 2017, 20:22 pm
|
No, es cosa del funcionamiento de las funciones, sin más. Tú cuando escribes algo en consola y pulsas enter, se envía esto: "12345\n". Ese salto de línea del final, scanf no lo quita del stream, así que se queda ahí. Entonces, cuando fgets trata de leer la línea, se encuentra con ese '\n'. fgets, como otras funciones, cuando encuentra un '\n', deja de leer, así que ya ni te deja escribir.
|
|
|
660
|
Programación / Programación C/C++ / Re: Errores raros después de una compilación normal
|
en: 27 Febrero 2017, 19:55 pm
|
Bien, el problema es que scanf deja un salto de línea en stdin. fgets lo lee, y da como terminada la lectura. Para ello, puedes usar:
Ese %*c lee un caracter y no lo guarda. Esta es la solución rápida. Otra solución sería leer siempre cadenas y, cuando sea un número, convertirla con la función int atoi(char*)
|
|
|
|
|
|
|