No, está bien... habría que ver qué hace el ArbolVacío(), porque quizás estés con un problema ahí.. pero hasta ahora está perfecto.Sobre pasar los punteros por valor, Pascal hace una copia del puntero en esa variable. Si hacés un Dispose(ptr), entonces esa memoria se libera, y el puntero pasa a ser nil... pero el puntero original, todavía está apuntando a una zona de memoria, que ya fue liberada, por ende, cuidado con eso.Es preferible pasarlos siempre por referencia, de modo que siempre se trabaje con el mismo puntero... Bah, por lo menos así pienso yo.---Te incluyo como lo haría yo, usaría sólo un procedimiento.Código: Textprocedure VaciarArbol(var A: Arbol);begin if A <> nil then begin VaciarArbol(A^.HI); VaciarArbol(A^.HD); Dispose(A); end;end; Sólo porque pasaba.. xD
Gracias por responder. Me quedo claro. En cuanto al que hacer arbolVacio(a) simplemente esto: ArbolVacio:=(A=nil) no lo escribi porque me parecio bastante claro, pero buh... Como sea gracias.