1. El tipo de los árboles binarios con valores en los nodos en Haskell
El árbol, con valores en los nodos,
|
9 / \ / \ / \ 8 6 / \ / \ 3 2 4 5 /\ /\ /\ /\ · ·· ·· · · · |
se puede representar por
|
N 9 (N 8 (N 3 H H) (N 2 H H)) (N 6 (N 4 H H) (N 5 H H)) |
usando el tipo de los árboles con valores en los nodos definido como se muestra a continuación.
|
data Arbol a = H | N a (Arbol a) (Arbol a) deriving (Show, Eq) |
2. El tipo de los árboles binarios con valores en los nodos en Python
El árbol binario, con valores en los nodos,
|
9 / \ / \ / \ 8 6 / \ / \ 3 2 4 5 /\ /\ /\ /\ · ·· ·· · · · |
se puede representar por
|
N(9, N(8, N(3, H(), H()), N(2, H(), H())), N(6, N(4, H(), H()), N(5, H(), H()))) |
usando el tipo de los árboles binarios con valores en los nodos definido como se muestra a continuación.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
from dataclasses import dataclass from typing import Generic, TypeVar A = TypeVar("A") @dataclass class Arbol(Generic[A]): pass @dataclass class H(Arbol[A]): pass @dataclass class N(Arbol[A]): x: A i: Arbol[A] d: Arbol[A] |
Se puede imprimir o compartir con