Guest Pedro Amorim Postado Junho 24, 2007 Denunciar Share Postado Junho 24, 2007 não consigo que esse programa funcione, ele compila, mas não funciona....ele cria uma árvore binária, insere elementos do tipo int, depois conta o numero de nós que são pares e imprime na tela.struct arv { int info; struct arv* esq; struct arv* dir; };typedef struct arv Arv;#include <stdio.h>#include <stdlib.h>Arv* abb_insere(Arv * a, int v){ if (a==NULL){ a = (Arv *) malloc (sizeof (Arv)); a->info = v; a->esq = NULL; a->dir = NULL;} else { if (v < a-> info){ a->esq = abb_insere (a->esq, v); } else{ a->dir = abb_insere (a->dir, v); } } return a; }int pares (Arv * a){ if (a == NULL){ return 0; } if (a->info % 2 == 0){ return 1 + pares (a->esq) + pares (a->dir); } else { return pares (a->esq) + pares (a->dir); }} int main (void){ Arv* c; int b = 0; c = abb_insere(c,1); c = abb_insere(c,2); c = abb_insere(c,3); c = abb_insere(c,4); c = abb_insere(c,5); c = abb_insere(c,6); c = abb_insere(c,7); c = abb_insere(c,8); c = abb_insere(c,9); c = abb_insere(c,10); c = abb_insere(c,12); c = abb_insere(c,14); b = pares ©; printf (" %d ", B);return 0;}desde já agradeço pela ajuda. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Pedro Amorim Postado Junho 24, 2007 Denunciar Share Postado Junho 24, 2007 desculpem-me pois depois de umas severas horas de revisão eu percebi que havia esquecido de criar uma árvore vazia para adicionar os elementos....o fórum é muito bom, aproveitei pra dar uma passeada por ele, parabéns aos organizadores pelo trabalho e pela iniciativa. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest Pedro Amorim
não consigo que esse programa funcione, ele compila, mas não funciona....
ele cria uma árvore binária, insere elementos do tipo int, depois conta o numero de nós que são pares e imprime na tela.
struct arv {
int info;
struct arv* esq;
struct arv* dir;
};
typedef struct arv Arv;
#include <stdio.h>
#include <stdlib.h>
Arv* abb_insere(Arv * a, int v){
if (a==NULL){
a = (Arv *) malloc (sizeof (Arv));
a->info = v;
a->esq = NULL;
a->dir = NULL;
}
else {
if (v < a-> info){
a->esq = abb_insere (a->esq, v);
}
else{
a->dir = abb_insere (a->dir, v);
}
}
return a;
}
int pares (Arv * a){
if (a == NULL){
return 0;
}
if (a->info % 2 == 0){
return 1 + pares (a->esq) + pares (a->dir);
}
else {
return pares (a->esq) + pares (a->dir);
}
}
int main (void){
Arv* c;
int b = 0;
c = abb_insere(c,1);
c = abb_insere(c,2);
c = abb_insere(c,3);
c = abb_insere(c,4);
c = abb_insere(c,5);
c = abb_insere(c,6);
c = abb_insere(c,7);
c = abb_insere(c,8);
c = abb_insere(c,9);
c = abb_insere(c,10);
c = abb_insere(c,12);
c = abb_insere(c,14);
b = pares ©;
printf (" %d ", B);
return 0;
}
desde já agradeço pela ajuda.
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.