2013-02-27 1 views
0

Как найти высоту поддерева как левый и правый, я использовал этот код в следующей ссылке C# BSTКак найти высоту левого и правого поддерева в C#

Любая помощь будет оценена.

С наилучшими пожеланиями

+0

Что такое * высота * бинарного дерева? максимальная высота? мин высота? – ogzd

+0

это проверить, сбалансирована ли она по высоте или нет. поскольку я новичок в кодировании, я понятия не имею, как это сделать. Мне нужно знать максимальную высоту левого под дерева и максимальную высоту правого поддерева. –

+0

искал эту функцию, чтобы найти высоту с помощью источника выше. –

ответ

0

Ну, если это правильная реализация BST, то они должны быть сбалансированы.

Но для его проверки это простая рекурсивная реализация.

public int TreeDepth(TreeNode<T> tree, int depth = 0) 
{ 
    int leftDepth = tree.Left != null 
     ? TreeDepth(tree.Left, depth + 1) 
     : depth; 
    int rightDepth = tree.Right != null 
     ? TreeDepth(tree.Right, depth + 1) 
     : depth; 
    return leftDepth >= rightDepth 
     ? leftDepth 
     : rightDepth; 
} 
+0

Это реализовано правильно, я проверил тестирование кода. Мне интересно, как вызвать TreeDepth и какие параметры передать. Спасибо за помощь @Kaerber –

+0

Вы просто передаете ему дерево, которое вы хотите измерить, например: var depth = TreeDepth (root); – Kaerber