Obrigado!! Mas acho que consegui fazer de outra maneira, visto que se trata de uma arvore de procura.A sub-arvore da esq contem elementos menor que a raiz e na sub-arvore dir tem elementos maiores. Logo acho que basta fazer uma passagem inorder dessa arvore. Fica algo assim void treeToArray(Tree t,int A[],int *i){ if(!t){ inorder(t->esq,A,i); A[*i] = t->elem; (*i)++; inorder(t->dir,A,i); } }