float calcularMediaIdade(Arvore *pRaiz) { if(pRaiz!=NULL){ return somarIdadeClientes(pRaiz) / contarNos(pRaiz); } return 0; }
int contarNos(no *p){ if(p == NULL) return 0; else return 1 + contarNos(p->esq) + contarNos(p->dir); }
int contarNos(Arvore *pRaiz){ if(pRaiz == NULL) return 0; else return 1 + contarNos(pRaiz->esq) + contarNos(pRaiz->dir); }
int main(){ int n,a,b; no *raiz, *aux; raiz = NULL; int opcao; while(opcao!=12){ opcao = menu(); switch(opcao){ case 1: printf("\n>>>>>>>>>>>>><<<<<<<<<<<<<\n\n"); printf("Digite -1 para terminar\n"); printf("\n>>>>>>>>>>>>><<<<<<<<<<<<<\n\n"); do{ printf("Digite um numero: "); scanf("%d", &n); if(n!=-1){ insere(n, &raiz); } }while (n!=-1); //imprime(raiz,0); break; case 2: printf("\n>>>>>>>>>>>>><<<<<<<<<<<<<\n\n"); printf("------> Pre-Ordem <------\n"); printf("\n>>>>>>>>>>>>><<<<<<<<<<<<<\n\n"); preordem(raiz); break; case 3: printf("\n>>>>>>>>>>>>><<<<<<<<<<<<<\n\n"); printf("------> Em-Ordem <------\n"); printf("\n>>>>>>>>>>>>><<<<<<<<<<<<<\n\n"); emordem(raiz); break; case 4: printf("\n>>>>>>>>>>>>><<<<<<<<<<<<<\n\n"); printf("------> Pos-Ordem <------\n"); printf("\n>>>>>>>>>>>>><<<<<<<<<<<<<\n\n"); posordem(raiz); break; case 5: consultarDetalhes(raiz); break; case 6: b=contarNos(raiz); printf("\n>>>>>>>>>>>>><<<<<<<<<<<<<\n\n"); printf(" A arvore possui %d nos!\n",b); printf("\n>>>>>>>>>>>>><<<<<<<<<<<<<\n\n"); break; case 7: printf("ARVORE BINARIA\n"); imprime(raiz,0); break; default : printf("opcao nao existe! tente novamente"); break; } } return 0; }