2 votes

Hauteur de l'arbre 2-3-4

Je dispose d'un extrait fonctionnel à utiliser pour un arbre régulier composé de nœuds. Il ne me reste plus qu'à le modifier pour qu'il fonctionne pour des arbres 2-3-4, ce qui devrait être plus facile, puisque chaque chemin a la même distance, puisqu'il est équilibré, n'est-ce pas ?

Les méthodes dont je dispose sont les suivantes getNextChild() , split() et bien sûr insert() .

public int height() {
    return (height(root));
}

private int height(TNode localRoot) {
    if(localRoot == null) {
        return 0;
    }
    else {
       //Find each sides depth
       int lDepth = height(localRoot.leftChild);
       int rDepth = height(localRoot.rightChild);

       //Use the larger of the two
       return (Math.max(lDepth, rDepth) + 1);
    }
}

1voto

poke Points 64398
public int height ()
{
    TNode cur = root;
    int depth = -1;

    while ( cur != null )
    {
        cur = cur.getChild( 0 );
        depth++;
    }

    return depth;
}

0voto

Jeremy Heiler Points 14320

Si l'arbre est équilibré, il devrait être possible d'en déterminer la hauteur en procédant à une récursivité d'un côté de l'arbre.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X