Tudo árvores em c

1539 palavras 7 páginas
#include
#include
#include
#include

/* declaração do tipo struct */ struct noa { char info[50]; struct noa *pai; struct noa *filho[10]; int nf;
};
/* declaração do tipo ponteiro */ typedef struct noa * pnoa;

/* Protótipos: ------------------------------------------*/ pnoa get_noa(char *); void novo_filho(pnoa, char *); void print_arvore(pnoa, pnoa, char *);
/* Protótipos dos exercícios: */ void print_pre_ordem(pnoa); void print_pos_ordem(pnoa); void print_em_ordem(pnoa); int num_nos(pnoa); int num_terminais(pnoa); int profundidade(pnoa); int grau(pnoa); double calcula(pnoa); void print_LISP(pnoa);
/* ------------------------------------------------------*/

/* Funções de criação de nós -----------------------------------*/
/* Cria um novo nó sem filhos, pai == NULL e copia s em info */ pnoa get_noa(char *s) { /* Aloca espaço para um novo nó */ /* e guarda seu endereço no ponteiro novo */ pnoa novo = malloc(sizeof(struct noa)); /* Copia o conteúdo da string s para o campo info */ /* strcpy é declarada em string.h */ strcpy(novo->info, s); /* O novo nó não tem filhos */ novo->nf = 0; /* e nem pai */ novo->pai = NULL; /* retorna o endereço do nó alocado */ return novo;
}

/* Cria um novo nó filho de p com info s */ void novo_filho(pnoa p, char *s) { pnoa novo; /* Verifica se foi atingido o número máximo de filhos de p */ if(p->nf == 10) { printf("Impossivel criar mais um filho\n"); return; } /* Chama a função get_noa() para criar */ /* um nó sem pai nem filhos */ novo = get_noa(s); /* altera o membro pai do nó criado para apontar para p */ novo->pai = p; /* guarda no vetor filho do pai */ /* a localização do nó criado */ p->filho[p->nf] = novo; /* incrementa a contagem de filhos do pai */ p->nf = p->nf + 1;
}
/* -------------------------------------------------------------*/

/* Imprime a árvore a, destacando o elemento w.

Relacionados

  • Avaliação grupo lv
    591 palavras | 3 páginas
  • Biomas brasileiros
    1527 palavras | 7 páginas
  • QUIMICA
    1075 palavras | 5 páginas
  • 118827654257332
    2670 palavras | 11 páginas
  • O homem e a Galinha
    2989 palavras | 12 páginas
  • Os sertões
    703 palavras | 3 páginas
  • trabalhos
    862 palavras | 4 páginas
  • DEUS
    3324 palavras | 14 páginas
  • eco logico
    2186 palavras | 9 páginas
  • Leitura
    522 palavras | 3 páginas