Высота 2-3-4 дерева - PullRequest
       13

Высота 2-3-4 дерева

2 голосов
/ 28 октября 2010

У меня есть рабочий фрагмент кода для обычного дерева, содержащего узлы.Теперь мне просто нужно поиграть с ним, чтобы работать с 2-3-4 деревьями, что должно быть проще, поскольку каждый путь имеет одинаковое расстояние, поскольку он сбалансирован, верно?

Методы, которые я имею в своем распоряжении, включают в себя:getNextChild(), split() и, конечно, 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);
    }
}

Ответы [ 2 ]

1 голос
/ 29 октября 2010
public int height ()
{
    TNode cur = root;
    int depth = -1;

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

    return depth;
}
0 голосов
/ 29 октября 2010

Если он сбалансирован, вы можете просто откинуть одну сторону дерева, чтобы определить высоту.

...