• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

suzy

problema recursividade

3 mensagens neste tópico

caros, tou com muita dificuldade nas funcoes recusrsivas,  estou a resolver problemas e pedia se pudessem é claro :-[, se estava correcto ou nao, vou ter exame e isto ta mto complicado  :(

1 - Desenvolva uma funcao recusriva em c, que determine quantos nós de uma arvore binaria e constituida por elementos do tipo no têm dois filhos.

A função recebe como argumento um ponteiro para a razi da arvore binaria e devolve como resultado o valor calculdado

fiz assim:


int conta_nos(ptrre p)
{

    if(p==NULL)
       return 0;
    else if(p->dir!=NULL && p->esq!=NULL)
               return 1+ conta_nos(p->dir)+conta_nos(p->esq);
};

muito obrigada

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não funciona para árvores deste género:

O primeiro nó tem um filho.

Este filho, tem 2.

Ou seja, o número de nós com 2 filhos é 1, e tu retornas 0.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

int conta_nos(ptrre p)
{

    if(p==NULL)
       return 0;
    else if(p->dir!=NULL && p->esq!=NULL)
               return 1+ conta_nos(p->dir)+conta_nos(p->esq);
           else return conta_nos(p->dir)+conta_nos(p->esq);
}

só acrescentar akele else ao segundo if e penso k fica a funcionar!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora