árvore binária
#include
#include
/*
1. Construir e implementar (programar) uma árvore binária a partir da seguinte sequência:
150, 120, 180, 170, 135, 210, 108, 145, 185, 82, 194, 140, 205, 90, 160, 116, 190
2. Mostrar as sequências Pós, Pré e In-fixadas utilizando algoritmos recursivos.
3. Elaborar algoritmos recursivos para as seguintes operações na árvore:
a. Retornar o número de nós cujos valores são múltiplos de cinco.
b. O número de nós em uma árvore binária
c. A profundidade de uma árvore binária
d. Retornar o número de folhas de uma árvore.
e. Retornar o número de NULLs presentes em uma árvore.
*/
// ------------------ Declaração de Variarveis int opt, contno=0,cont_dir=0,cont_esq=0,conta_folha=0,conta_Null=0;
//----------------------------------------------- Algoritmo de Criação e insersão da arvore --------------------------------
typedef struct arvore { int info; struct arvore *esq,*dir; }; void insere(struct arvore **inicio, int info) { struct arvore *aux; /* Como a funçao é recursiva, em alguem momento receberá um início igual a NULL, ou caso a árvore esteja vazia. */ if (!*inicio) { if((aux = (struct arvore*) malloc(sizeof(struct arvore))) != NULL) { aux -> info = info; aux -> dir = NULL; aux -> esq = NULL; *inicio = aux; } else printf("Nao foi possivel alocar memoria"); } else { /* Se o info atual for MAIOR que o valor a ser inserido, então esse valor será inserido do lado ESQUERDO. */ if ((*inicio)->info > info) insere(&((*inicio)->esq), info); else /* Se o info atual for MENOR que o valor a ser inserido, então esse valor será inserido do lado DIREITO. */ if((*inicio)->info < info)