Holas again..! te recomiendo te hagas un ejemplito de un arbolito..y sigas el algoritmo para entenderlo..lo de los niveles es facil..tendrias que poner un condición acordate que el nivel tiene 2 nodos izq y derecho ..salvo la raiz!eso que te pase imprime por niveles..ademas es iterativo mucho mas facil de entender..que uno recursivo.
Y con respecto a la copia del arbol..si lo que buscas es hacer otro arbol identico..podes utilizar el recorrido en pre_orden..algo asi:
Código Delphi
[-]
procedure pre_orden(A:arbol);
begin
If A <> nil then
begin
insertarAbol_new(A^.dato, B);**el arbol B seria el nuevo
pre_orden(A^.izq) ;
pre_orden(A^.der);
end;
y asi seria..creo jaja..no tengo mucho manejo de puntero
Saludos!
LA PATRIA SERA LIBRE