Árvore em disco

627 palavras 3 páginas
#include
#include

typedef struct arvore
{
int id; struct arvore *dir; struct arvore *esq;
} arvore;

arvore *aloca()
{
arvore *novo = (arvore*)malloc(sizeof(arvore)); printf("Entre com a chave: "); scanf("%d", &(novo->id)); return novo;
}

void salvaItemArv(arvore *T, FILE *arquivo, int camada)
{
int i;

if(T == NULL) { return; } else { salvaItemArv(T->dir, arquivo, camada+1);

for(i=0; iid); salvaItemArv(T->esq, arquivo,camada+1); }
}

void salvaArquivoArv(arvore *T)
{
FILE *arquivo; arquivo = fopen("arquivo.txt","a"); fprintf(arquivo, "\nIMPRESSAO DA ARVORE BINARIA\n\n"); salvaItemArv(T,arquivo, 0); fclose(arquivo);
}

void salvaItem (arvore *T, FILE *arq)
{
if(T->esq)salvaItem(T->esq,arq); fprintf(arq, "ID: %d\n", T->id); if(T->dir)salvaItem(T->dir,arq);

}

void salvaArquivo(arvore *T)
{
FILE *arq; arq = fopen("arquivo.txt","w"); fprintf(arq, "IMPRESSAO DA LISTA DE CHAVES\n\n"); salvaItem(T,arq); fclose(arq);
}

void imprimir(arvore *chave)
{
printf("\n-----------------------------------------\n"); printf("ID: %d\n", chave->id); printf("-----------------------------------------\n");
}

void imprimirLista(arvore *T)
{
if(T == NULL) { return; } else { imprimirLista(T->esq); imprimir(T); imprimirLista(T->dir); }
}

void cadastrar(arvore **T, arvore *novo)
{
if((*T) == NULL) { novo->dir = NULL; novo->esq = NULL; (*T) = novo; } else { if(novo->id == (*T)->id) { printf("\nChave ja cadastrada!\n"); } else if(novo->id < (*T)->id) { cadastrar(&((*T)->esq), novo); } else { cadastrar(&((*T)->dir), novo); } }

Relacionados

  • BANCO DE DADOS RAIDS
    2684 palavras | 11 páginas
  • Tranmissao
    9575 palavras | 39 páginas
  • Arvores multiplas, árvore b
    538 palavras | 3 páginas
  • RELATÓRIO DE ANALISE DE TRONCO COMPLETA DA ESPÉCIE DE Tectona grandis.
    1397 palavras | 6 páginas
  • arvore b+
    1899 palavras | 8 páginas
  • Introdução ao Estudo das Árvores B
    5394 palavras | 22 páginas
  • Fresadora
    2136 palavras | 9 páginas
  • Acoplamentos
    2482 palavras | 10 páginas
  • Arvores B, B+, B*
    1371 palavras | 6 páginas
  • Arvores B
    2327 palavras | 10 páginas