La hauteur d'un arbre binaire est la distance entre le nœud racine et le nœud enfant le plus éloigné de la racine.
Voici un exemple:
2 <-- root: Height 1
/ \
7 5 <-- Height 2
/ \ \
2 6 9 <-- Height 3
/ \ /
5 11 4 <-- Height 4
Hauteur de l'arbre binaire: 4
Définition d'un arbre binaire
Un arbre est un objet qui contient une valeur entière signée et deux autres arbres ou pointeurs vers eux.
La structure de la structure d'arbre binaire ressemble à ceci:
typedef struct tree
{
struct tree * l;
struct tree * r;
int v;
} tree;
Le défi:
Contribution
La racine d'un arbre binaire
Production
Le nombre qui représente la hauteur d'un arbre binaire
En supposant que la racine d'un arbre binaire vous soit donnée en entrée, écrivez le programme le plus court qui calcule la hauteur d'un arbre binaire et renvoie la hauteur. Le programme avec le moins d'octets (espaces blancs de comptabilité) gagne.
h
. Il serait peut-être préférable de définir une structure spécifique constituée uniquement de listes aux fins de ce défi.
[root_value, left_node, right_node]
où chacun left_node
et right_node
sont aussi des arbres binaires acceptables? Ce sera trivial dans de nombreuses langues, mais pourrait être amusant dans d'autres.
a tree is an object that contains a value and either two other trees or pointers to them
. Une définition qui inclut les langages sans objets serait également bien aussi.