arquivo fonte arvores genericas

458 palavras 2 páginas
/* arvores genéricas representando árvores binárias
*/

#include <stdio.h>
#include <stdlib.h>

typedef struct nodo { char dado; struct nodo *filho, *irmao;
} arvoreg ; arvoreg *aini;
FILE *arq, *arqsai; //­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ arvoreg *ProcuraG(arvoreg **eainicio, char chave) { arvoreg *a1; a1 = NULL; if (*eainicio != NULL) { if ((*eainicio)­>dado == chave) a1 = *eainicio; if (a1 == NULL) a1 = ProcuraG ((&((*eainicio)­>filho)), chave); if (a1 == NULL) a1 = ProcuraG ((&((*eainicio)­>irmao)), chave); } return a1;
}

//­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ arvoreg *ProcuraComAntG(arvoreg **eainicio, char chave, arvoreg **ant) { arvoreg *a1; a1 = NULL; if (*eainicio != NULL) { if ((*eainicio)­>dado == chave) a1 = *eainicio; if (a1 == NULL) { *ant = *eainicio; a1 = ProcuraComAntG ((&((*eainicio)­>filho)), chave, ant); } if (a1 == NULL){

*ant = *eainicio; a1 = ProcuraComAntG ((&((*eainicio)­>irmao)), chave, ant); } } if (a1 == NULL) *ant = NULL; return a1;
}

//­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ void ConstroiG(arvoreg **eainicio) { char c; arvoreg *a1, *a2; int n, i; *eainicio = NULL; while ((c = getc (arq)) != EOF) { if (c != '\n'){ if (*eainicio != NULL) a1 = ProcuraG (eainicio, c); else { a1 = malloc (sizeof (arvoreg)); a1­>dado = c; a1­>filho = NULL; a1­>irmao = NULL; *eainicio = a1; } fscanf (arq, "%d ", &n); for (i=1; i !=n+1; i++) { c = getc (arq); if (a1­>filho == NULL) { a1­>filho = malloc (sizeof (arvoreg)); a2 = a1­>filho; } else { a2­>irmao = malloc (sizeof (arvoreg)); a2 = a2­>irmao; } a2­>dado = c; a2­>filho = NULL; a2­>irmao = NULL; c = getc (arq); }

} }

Relacionados

  • Curso de Programação em C++
    401 palavras | 2 páginas
  • CELES, W., CERQUEIRA, R. e RANGEL, J. L. Introdução a Estruturas de Dados
    47784 palavras | 192 páginas
  • Estrutura de dados
    45366 palavras | 182 páginas
  • Mvc base
    13920 palavras | 56 páginas
  • Trabalhos
    731 palavras | 3 páginas
  • Estrutura de Dados
    4691 palavras | 19 páginas
  • Emiissões atmosféricas
    6935 palavras | 28 páginas
  • Compiladores
    3384 palavras | 14 páginas
  • Paradigmas de Lp's
    3021 palavras | 13 páginas
  • Contabeis
    1056 palavras | 5 páginas