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

luchhozito

Peso de uma arvore

7 mensagens neste tópico

boas alguem podia meter ai a funcao que dá o peso de uma árvore binária?

peso :: Tree a -> Int

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O peso de uma árvore é 1 mais o peso da maior das suas sub-árvores. Resume-se a uma simples função recursiva.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu tenho esta.

peso Empty = 0
peso (Node x Empty Empty) = 1
peso (Node x esq dir) = 1 + (maximum (....))

falta me so o (....) recursividade, tou com uma duvida , ta dar uns erros.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

peso Empty = 0
peso (Node x Empty Empty) = 1
peso (Node x esq dir) = 1 + max (peso esq) (peso dir)

ne ? obrigado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ja agora, eu tenho esta função que insere um elemente x na arvore.

insere :: Int -> Tree Int -> Tree Int
insere x Empty = (Node r Empty Empty)
insere x (Node r esq dir) | (x == r) = (Node r esq dir)
                         | (x > r) = (Node r ( insere x esq) dir
                         | (x < r) = (Node r esq (insere x dir)

agora se quisse remover um elemento , e parecido ? mais dificil ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A remoção é um pouco mais complicada... Isto porque a inserção ocorre sempre nas folhas, mas a remoção pode não ocorrer. O método que eu costumo usar é este. Existe (pelo menos) outro método (um pouco mais simples, talvez), mas que altera demasiado a estrutura da árvore.

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