Autor Tópico: Instancias Eq  (Lida 109 vezes)

Offline dardevil

  • void
  • *
  • Mensagens: 8
Instancias Eq
« em: 29 de Janeiro de 2010, 15:54 »
Boas pessoal!

Alguem me poderia dar uma ajuda na resolução deste problema, esta parte de haskell não percebo nada

Defina o tipo Tree capaz de representar árvores binárias de inteiros.
Torne-o uma instância das classes Eq e Ord. Assuma que duas árvores são iguais se
a soma dos seus elementos é a mesma. Uma árvore t1 é menor que uma árvore t2 se
o somatório dos elementos de t1 for menor que o somatório dos elementos de t2.

cumps o/

Offline Baderous

  • Membro do Staff
  • Unsigned User
  • ******
  • Mensagens: 1075
  • A aula é às 8:00!
    • Página Pessoal
Re: Instancias Eq
« Responder #1 em: 29 de Janeiro de 2010, 16:03 »
Já definiste o tipo Tree?

Offline dardevil

  • void
  • *
  • Mensagens: 8
Re: Instancias Eq
« Responder #2 em: 29 de Janeiro de 2010, 16:19 »
penso qe seja assim, mas nao tenho a certeza:

 data Tree = Leaf n | Node Tree Int Tree

Offline Baderous

  • Membro do Staff
  • Unsigned User
  • ******
  • Mensagens: 1075
  • A aula é às 8:00!
    • Página Pessoal
Re: Instancias Eq
« Responder #3 em: 29 de Janeiro de 2010, 16:25 »
Isso nem compila.

Offline dardevil

  • void
  • *
  • Mensagens: 8
Re: Instancias Eq
« Responder #4 em: 29 de Janeiro de 2010, 16:27 »
sinceramente nao tenho outra solucao  :confused:

Offline Baderous

  • Membro do Staff
  • Unsigned User
  • ******
  • Mensagens: 1075
  • A aula é às 8:00!
    • Página Pessoal
Re: Instancias Eq
« Responder #5 em: 29 de Janeiro de 2010, 16:33 »
Tu andas lá perto, só que ainda não percebeste o que estás a fazer.
Uma árvore:
- pode ser vazia
- pode ter 1 nodo e 2 sub-árvores (esquerda e direita)

A partir daqui constróis facilmente o tipo:

Código (Haskell): [Seleccione]
data Tree = Vazia | Nodo Int Tree Tree
Assim já tens uma árvore para armazenar inteiros. A partir desta definição podes generalizar o conceito de árvore de modo a poder armazenar qualquer tipo de dados:

Código (Haskell): [Seleccione]
data Tree a = Vazia | Nodo a (Tree a) (Tree a)

Offline dardevil

  • void
  • *
  • Mensagens: 8
Re: Instancias Eq
« Responder #6 em: 29 de Janeiro de 2010, 16:38 »
 :hmm: acho qe ja tou a perceber melhor
agora ja se torna mais facil defnir as instancias

TY  :)