Árvore Binária
//## Trabalho de EDP - Arvore
//##
//## Alunos: Arthur Morato;
//####################################################
//Cabeçalho com as bibliotecas
#include
//Cabeçalho com as bibliotecas
#include
/*Início da Estrutura*/
//estrutura do nó da arvore struct no { //declaração da variável int x; //declaração recursiva dos nós da árvore struct no *lef, *rig; //fim
};
/*Fim das estrutura*/
/*Inicialização da Arvore*/ struct no* iniArv(void){ //retorn null return NULL;
};
//Fim da Inicialização
//Insere um novo nó na Árvore struct no* insArv(struct no *no, int x){ //declaração do ponteiro no que tem o tipo struct no e está recebendo seu espaço de memória para armazenamento struct no *aux = malloc(sizeof(struct no)); //fazer a inserção em um espaço vazio if(no == NULL){ //Arvore Vasia //atribuição aux->x = x; //atribuição aux->lef = NULL; //atribuição aux->rig = NULL; //atribuição no = aux; //fim } //verifica para qual lado deve ir if(no->x > x){ //to left side no->lef = insArv(no->lef, x); //fim } //verifica para qual lado deve ir if(no->x < x){ //to right side no->rig = insArv(no->rig, x); //fim } //retorno e acabou return no; //fim
}
//Fim da Inserção
/*Imprimir em pré-ordem*/ void red(struct no *no){ //um printf printf("("); //uma tomada de decisão if(no != NULL){ //outro printf para imprimir o valor da raiz printf("%d", no->x); //to left side red(no->lef); //to right side red(no->rig); //end } //outro printf printf(")"); //return pra finalizar return; //acabou
}
//Fim da Impressão
/*Imprimir em ordem*/ void erd(struct no *no){ //uma tomada de decisão if(no != NULL){ //to left side erd(no->lef); //outro printf para imprimir o valor da raiz printf("%d", no->x); //to right side erd(no->rig); //end } //return pra finalizar