Есть для высоты дерева:
public static void HeigthTree(Node t, ref int count, ref int heigth)
{
if (t!=null) // если текущий узел не пустой
{
if (count > heigth) //и длина пути от корня до текущего узла больше высоты дерева, то
{
heigth=count; // полагаем в качестве высоты дерева длину пути до текущего узла
}
count++; // в любом случае увеличиваем длину пути от корня до текущего узла
HeigthTree(t.left, ref count, ref heigth); //обходим левое поддерево
HeigthTree(t.rigth, ref count, ref heigth); //обходим правое поддерево
count--; //после чего уменьшаем длину пути от корня до текущего узла
}
}
Высота узла-это длина пути от этого узла к самому нижнему листу.Вопрос,как реализовать эту самую высоту...
Слишком много параметров. Попробуйте следующую рекурсию:
static int height(Node node) {
if(node == null) return 0;
//находим высоту правой и левой ветки, и из них берем максимальную
//todo если дерево не бинарное, то для поиска макс ветки реализовать цикл
return 1 + Math.max(height(node.left), height(node.right));
}
Так как само дерево также является экземляром Node
, то для нахождения высоты дерева:
int height = height(tree);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Не могу организовать рекурсиюПодскажи, где нужно исправить, чтобы функция правильно работала
Как получить число (int), полученное в результате такого SQL-запроса:
Всем привет, проблема такая, что не могу сделать запись в определенный файл, создается всегда новый файл