Haz una pregunta
  Foros de Electrónica » Diseño digital » Interfaces y Programación
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

19/07/2011 #1


arbol binario (en C) que ingrese, elimine y liste datos
Tengo un problema para la eliminación de datos, depende que dato elimine me lo raliza bien o no. Les dejo el codigo adjunto. El programa esta corrido en devC++. Cualquier cosa que no se entienda lo que necesito, o que no salga bien el adjunto, por favor avisenme. Desde ya muchas gracias.
19/07/2011 #2

Avatar de Unikfriend

electronacho dijo: Ver Mensaje
Tengo un problema para la eliminación de datos, depende que dato elimine me lo raliza bien o no. Les dejo el codigo adjunto. El programa esta corrido en devC++. Cualquier cosa que no se entienda lo que necesito, o que no salga bien el adjunto, por favor avisenme. Desde ya muchas gracias.
hi electro,
puedes explicar con que datos los prueba?

19/07/2011 #3


Ahi te adjunto un ejemplo, es una pantalla del programa.
Ingrese 5-6-2-89-87-56-1000(el 1000 es para cortar el ingreso) y cuando quise borrar el 6 me sale ese error
Archivos Adjuntos
Tipo de Archivo: rar Dibujo.rar (11,5 KB (Kilobytes), 8 visitas)
19/07/2011 #4


he visto esto:

void imprime(struct arbol *p)
{
if(p->izq!=0)
imprime(p->izq);
printf("==> %d\n",p->dato);
if(p->der!=0)
imprime(p->der);
}

llamas a la funcion dentro de la funcion??
19/07/2011 #5

Avatar de dukex

MerLiNz dijo: Ver Mensaje
he visto esto:

void imprime(struct arbol *p)
{
if(p->izq!=0)
imprime(p->izq);
printf("==> %d\n",p->dato);
if(p->der!=0)
imprime(p->der);
}

llamas a la funcion dentro de la funcion??
debe ser recursividad..
19/07/2011 #6


Si, es curioso, nunca pense que se podia hacer, traducido a asm simplemente sera un salto, pero no sabia que en C++ el compilador lo permitia.
20/07/2011 #7

Avatar de dukex

MerLiNz dijo: Ver Mensaje
Si, es curioso, nunca pense que se podia hacer, traducido a asm simplemente sera un salto, pero no sabia que en C++ el compilador lo permitia.
No sé que conllevará la función, pero creo que no es sólo un salto...... es también conservar una instancia de la función en la memoria como si fuera un objeto existiendo hasta que la funcion empiece a retornar dentro de sí misma, también de manera recursiva...
20/07/2011 #8


yo mas bien diria que seria como hacer un bucle, es decir, mientras existan datos en el puntero ya sea p->izq o p->der se vuelve al inicio de la funcion, una vez no hay datos en los punteros el programa continua.

Como tu dices se llama recursividad, pero al fin y al cabo no deja de ser un bucle. Con el salto me referia a asm, osea un call a una nueva instancia de la funcion.
20/07/2011 #9


Sí, es recursividad. De todas formas no me hace problema por eso el programa, lo que no logro es que me elimine todos los nodos de la misma forma. Algunos los elimina sin problema y en otros me da ese error que adjunté.
20/07/2011 #10

Avatar de Unikfriend

Hi nacho,
¡Es algo complicado y entretenido a la vez! jijii
Tuve que agregar varias validaciones por que genera algunos errores
cuando se intenta borrar punteros que no existe y cuando se intentaba
borrar la raiz.


Imágenes Adjuntas
Tipo de Archivo: bmp binary1.bmp (73,9 KB (Kilobytes), 9 visitas)
20/07/2011 #11


Hola Unikfriend!
Lo solucionaste, barbaro! Pero me podrías mandar el código para ver como te quedó??
22/07/2011 #12

Avatar de Unikfriend

electronacho dijo: Ver Mensaje
Hola Unikfriend!
Lo solucionaste, barbaro! Pero me podrías mandar el código para ver como te quedó??
Hola nacho, aqui esta el programa

Una disculpa, se me olvido subirlo y ayer estuve enferma.
lo he provado con pocos datos pero creo que trabaja bien.
si encuentras algo que se pueda mejorar avisame.


Ver la direccion en memoria de cada valor es de mucha ayuda.
Imágenes Adjuntas
Tipo de Archivo: bmp binary1.bmp (53,4 KB (Kilobytes), 6 visitas)
Archivos Adjuntos
Tipo de Archivo: txt Binary.txt (3,5 KB (Kilobytes), 15 visitas)
23/07/2011 #13


Muchisimas gracias Unikfriend! incluso lo dejaste más completo al programa, gracias de nuevo, nos vemos
23/07/2011 #14

Avatar de dukex

Já! le debés electronacho, te salvó y te dió bono!!!

mucha suerte con todo.

saludos
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Interfaces y Programación

Lenguajes de programación, gestión y manejo de puertos

Cerrar
Foros de Electrónica » Diseño digital » Interfaces y Programación

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.