Boa noite..
Alguém sabe como ler e gravar dados de uma árvore binária em arquivos texto?
Tenho as funções de leitura e gravação assim:
Estrutura:typedef struct Contatos{
int codigo;
char nome[10];
}Contatos;
typedef struct Raiz{
Contatos contato;
struct Raiz* esquerda;
struct Raiz* direita;
}Arvore;
Gravação:
void gravaArquivo(Arvore* Arv){
FILE *arquivo;
int i;
arquivo = fopen("Contatos.txt","w");
if(Arv != NULL){
fwrite(&Arv->contato, sizeof(Arvore), 1, arquivo);
}
fclose(arquivo);
}
Arvore* carregaArquivo(Arvore* Arv){
FILE *arquivo;
arquivo = fopen("Contatos.txt","r");
rewind(arquivo);
int i = 0;
if(Arv == NULL){
Arv = (Arvore*) malloc(sizeof(Arvore));
Arv->esquerda = NULL;
Arv->direita = NULL;
}
fread(&Arv->contato, sizeof(Arvore), 1, arquivo);
fclose(arquivo);
return Arv;
}
Mas ela ta gravando e lendo apenas o primeiro registro..
Como faço para movimentar a árvore ? Seria com recursividade?
Abraço!