exercícios arvore
int maior_valor(Arv* a) ;{ int p=0, max_dir, max_esq; p=a->info; max_dir=maior_valor(a->dir); max_esq=maior_valor(a->esq); if (max_dir>p) { p=max_dir; } if (max_esq) ;{ p=max_esq; } return (p);
//Questão 3 - Contar o número de folhas da árvore.
int conta_folhas (Arv*a){ if (a==NULL) { return (0); if (a->dir==NULL && a->esq==NULL){ return (1); }
return (conta_folhas (a->dir) + conta_folhas(a->esq));
}
// Questão 4 - Conta nós internos.
int conta_internos (Arv*a) { if (a==NULL) return (-1); return (conta_internos(a->esq) + conta_internos (a->dir)); }
// Questão 5 - Retorna a altura da ávore.
int altura (Arv*a) { int ae, ad; if (a==NULL){ return (-1); } else ae=altura(a->esq); ad=altura(a->dir); if (ae>ad){ return (ae+1); } return (ad+1); }
// Questão 6 - Retorna o nível.
int nivel(Arv* a, int x);
// Questões de ávore binária de busca.
// Questão 7 - Criar determinada árvore
{
Arv*a1=arv_cria(1, NULL, NULL);
Arv*a2=arv_cria(7, NULL , NULL);
Arv*a3=arv_cria(13, NULL, NULL);
Arv*a4=arv_cria(1, a1, a2;)
Arv*a5=arv_cria(6, a1, a2);
Arv*a1=arv_cria(14, a3, NULL);
Arv*a2=arv_cria(3, a4, a5);
Arv*a3=arv_cria(10, NULL, a1);
Arv*a4=arv_cria(8, a2, a3);
}
//Questão 8 - Encontrar maior valor.
int maior_valor(Arv* a) ;{ Arv*p; if (a==NULL);{ return (-1)
for (p=a; p->dir!=NULL; p=p->dir); return (p->info);
} // Questão 9 - Encontrar menor valor.
Arv* menor_valor(Arv* a);
Arv*p, ant=NULL;
if (a==NULL) { return (-1); } for (p=a; p1!= NULL; p=p->dir);{ } return (p->info);
}
// Questão 10 - Retorna os nós com valores maiores que x.
int maiores_que_x(Arv* a, int x); {
if (a==NULL) { return 0; if (x>a->info) { return