Eu recebi a seguinte arvore:
struct arv { int info; struct arv* esq; struct arv* dir; }; typedef struct arv Arv;
e foi pedido para que eu faça uma função que copiei essa arvore para outra com o seguinte prototipo:
Arv *copia(Arv *a);
AVISO: A PARTIR DE AGORA O CODIGO FOI FEITO POR MIM!
Então preparei uma main de teste:
#include"arv.h" #include<stdio.h> int main (void) { Arv a, x, y,*b; x.dir=NULL; x.esq=NULL; y.dir=NULL; y.esq=NULL; x.info=3; y.info=4; a.dir=&x; a.esq=&y; a.info=1; b=copia(&a); return 0; }
o arquivo arv.h:
struct arv { int info; struct arv* esq; struct arv* dir; }; typedef struct arv Arv; Arv *copia(Arv *a);
E o arquivo arv.c:
#include"arv.h" #include<stdlib.h> #include<stdio.h> Arv *copia(Arv *a) { Arv *b; b=(Arv *)malloc(sizeof(Arv)); b->info=a->info; b->esq=copia(a->esq); b->dir=copia(a->dir); return b; }
O visual studio, quando faço o chines, aponta um erro no "Arv *copia(Arv *a)", acho que estou alocando a arvore de uma maneira errada.
É isso, agradeço a ajuda.