Baixe o app para aproveitar ainda mais
Prévia do material em texto
Árvores Binárias-Encaminhamentos Alunos :Diego ,Eudes , Marlon, Sergio Paz , Sergio Rafael. Árvores O que e árvore? Como podem ser representadas? Qual e sua terminologia? Á R V O S R E Árvores Tipos de representação Árvores TERMINOLOGIA Árvores Binárias-Encaminhamentos O que encaminhamento ? Quais as maneiras de mais usuais de percorre os nós? 1-Caminhamento Pré-fixado 2-Caminhamento In-fixado 3-Caminhamento Pós-fixado Árvores Binárias-Encaminhamentos Caminhamento Pré-Fixado B A D C F E G H A B C D E F G H 6 Árvores Binárias-Encaminhamentos Caminhamento In-Fixado B A D C F E G H D B A G E H C F Árvores Binárias-Encaminhamentos Caminhamento Pós-Fixado B A D C F E G H D B G H E F C A #include <stdio.h> #include <stdlib.h> typedef char TDados; typedef struct No { struct No *esq; TDados info; struct No *dir; } TNo; typedef TNo TArvore;// Define TArvore do tipo TNo. TArvore *Cria(TArvore *esq, TDados info, TArvore* dir){ TArvore *p; p = (TArvore*) malloc(sizeof(TArvore)); if (p == NULL) { printf("ERRO DE MEMORIA\n"); getchar(); exit(0); } else { p->info = info; p->esq = esq; p->dir = dir; } return p; } Declaração da estrutura No (Nó) Função Cria do tipo TArvore retorna um ponteiro p. Atribuindo valores à estrutura criada dinâmicamente. void Caminhamento_Pre_Ordem(TArvore *a) { if (!Vazia(a)) { printf("%c ", a->info); Caminhamento_Pre_Ordem(a->esq); Caminhamento_Pre_Ordem(a->dir); } } //Função Caminhamento_In_Fixado void Caminhamento_In_Fixado(TArvore *a) { if (!Vazia(a)) { Caminhamento_In_Fixado(a->esq); printf("%c ", a->info); Caminhamento_In_Fixado(a->dir); } } //Função Caminhamento_Pos_Fixado void Caminhamento_Pos_Fixado(TArvore *a) { if (!Vazia(a)) { Caminhamento_Pos_Fixado(a->esq); Caminhamento_Pos_Fixado(a->dir); printf("%c ", a->info); } } Definição da função Pré-Order. Aqui mostra a raiz. Aqui imprime no console a sub_esquerda. Aqui imprime no console a sub_direita. int main(void){ TArvore *a,*a1,*a2,*a3,*a4,*a5,*a6; system("cls"); //Inicializando as sub-arvores. a1 = Cria(NULL,'1',NULL); a2 = Cria(NULL,'2',NULL); a3 = Cria(a1,'3',a2); a4 = Cria(NULL,'4',NULL); a5 = Cria(a4,'5',NULL); a6 = Cria(NULL,'6',a5); a = Cria(a3,'7',a6); printf("Caminhamentos na Arvore\n\n Pre-Ordem: "); Caminhamento_Pre_Ordem(a);// aqui chama a função recursiva Caminhamento_Pre_Ordem. printf("\n In-Fixado: "); Caminhamento_In_Fixado(a);// aqui chama a função recursiva Caminhamento_In_Fixado. printf("\nPos-Fixado: "); Caminhamento_Pos_Fixado(a);// aqui chama a função recursiva Caminhamento_Pos_Fixado. printf("\n\n"); system("pause"); return(0); } Declaração de ponteiros para estruturas Pais ou Filhos. Inicialização propriamente dita da arvore T.
Compartilhar