1. El tipo de los árboles binarios con valores en las hojas en Haskell
El árbol binario
·
/ \
/ \
· ·
/ \ / \
1 4 6 9
se puede representar por
ejArbol = Nodo (Nodo (Hoja 1) (Hoja 4))
(Nodo (Hoja 6) (Hoja 9))
usando el tipo de los árboles binarios con valores en las hojas definido como se muestra a continuación.
data Arbol a = Hoja a
| Nodo (Arbol a) (Arbol a)
2. El tipo de los árboles binarios con valores en las hojas en Python
El árbol binario
·
/ \
/ \
· ·
/ \ / \
1 4 6 9
se puede representar por
ejArbol = Nodo(Nodo(Hoja(1), Hoja(4)),
Nodo(Hoja(6), Hoja(9)))
usando el tipo de los árboles binarios con valores en las hojas definido como se muestra a continuación.
from dataclasses import dataclass
from typing import Generic, TypeVar
A = TypeVar("A")
@dataclass
class Arbol(Generic[A]):
pass
@dataclass
class Hoja(Arbol[A]):
x: A
@dataclass
class Nodo(Arbol[A]):
i: Arbol[A]
d: Arbol[A]