В предыдущих частях мы познакомились с рекурсивным подходом решения деревьев. В этой части мы воспользуемся стэком. Рекурсия далека от идеала. Рекурсия чаще всего используется только во время собеседований (а этот цикл статей именно направлен на подгтовку к собеседования). В промышленной разработке её чаще избегают изза потенциальных следующих потенциальных проблем: Очеред (или Стэк) - популярный подход в решении задач на деревья. Во многом, задача на деревья определяется тем, как мы можем проитерироваться по всем узлам...
KotoJava
Проверяем является ли дерево бинарным деревом поиска
Продолжаем цикл статей про деревья. Основной целью этого цикла является практика и подготовка к собеседованиям а не промышленные решения (о них я расскажу в следующих частях). В этой части мы еще раз воспользуемся рекурсией для решения одной популярной задачи. Задача - проверить является ли дерево ли бинарным деревом поиска? Для начала определимся что такое бинарное дерево поиска: Такое дерево называется Бинарным Деревом Поиска (Binary Search Tree). Но не стоит путать его с балансированым бинарным деревом...
Продолжаем решать деревья. Инвертирование дерева - одна из самых популярных задач
Эта часть является продолжением цикла лекций про деревья. В этой части мы снова воспользуемся рекурсией чтобы инвертировать дерево. Задача довольно популярна и по сложности является довольно простой. Допустим у нас есть дерево Допустим у нас есть дерево ниже: Инвертируем дерево Целью является инвертировать дерево. Те для каждого узла нужно поменять местами его левый и правый наследники...
Рекурсивно обходим деревья. Прямой, Центрированый, Обратный обходы
В прошлой части мы ознакомились с базовыми понятиями деревьев и обошли одно дерево рекурсией. В данной статье мы еще раз рассмотрим понятие рекурсии и посмотрим как небольшие во время итерации могут повлиять на результат. В данной части мы сфокусируемся на итерации, а в следующе мы уже будем использовать эти подходы для решения задач. Обход деревьев часто ощущается как лабиринт Давайте рассмотрим уже знакомое дерево: Прямой обход дерева (Префиксный) - NLR В прошло части мы уже итерировались по дереву рекурсивно...
Что такое деревья и как с ними работать. Используем Java
Деревья являются одним из самых пугающих вещей в разработке. Еще хуже дело обстоит, когда программист встречает задачу, связанную с деревьями, во время собеседования. В этой статье я постараюсь минимизировать боль, связанную с этой темой. Деревья бывают разные. Мы рассмотрим двоичное сбалансированное. В данной статье мы рассмотрим наиболее популярные — двоичные сбалансированные (красно-черные) деревья. Пример бинарного дерева. У каждого листка может быть не более двух наследников. Основные понятия...
