Olá construí este código em arvore binaria mas, está dando erro , apenas preciso fazê-lo apresentar um resultado, que é o numeral 20. alguém poderia me ajudar.
#include <stdio.h>
typedef struct arv Arv;
struct arv {
char op;
float valor;
struct arv *esq, *dir;
};
// Implementar esta função
float avalia (Arv *a)
{
Pergunta
Wagner da Silva
Olá construí este código em arvore binaria mas, está dando erro , apenas preciso fazê-lo apresentar um resultado, que é o numeral 20. alguém poderia me ajudar.
#include <stdio.h>
typedef struct arv Arv;
struct arv {
char op;
float valor;
struct arv *esq, *dir;
};
// Implementar esta função
float avalia (Arv *a)
{
if ((a->esq == NULL) && (a->dir == NULL))
return a->valor;
else{
if(a->op == ‘+’) return avalia(a->esq) + avalia(a->dir)
if(a->op == ‘-’) return avalia(a->esq) - avalia(a->dir)
if(a->op == ‘*’) return avalia(a->esq) * avalia(a->dir)
if(a->op == ‘/’) return avalia(a->esq) / avalia(a->dir)
}
}
int main(void)
{
// Árvore para representar a operação: 5 * 3= 15
Arv no[3]; // Em vetor
Arv op, val1, val2; // Em variáveis
// Vetor
no[0].op = '*';
no[0].esq = &no[1];
no[0].dir = &no[2];
no[1].valor = 5;
no[2].valor = 3;
printf("Resultado da expressao: %.2f\n", avalia(&no[0]));
// Variáveis
op.op = '*';
op.esq = &val1;
op.dir = &val2;
val1.valor = 5;
val2.valor = 3;
printf("Resultado da expressao: %.2f\n", avalia(&op));
}
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.