это невероятно, Вы самый лучший преподаватель! я никогда не пишу комменты на ютубе, но здесь просто не могу промолчать. вот изучаешь материал по документации, по другим видео и остается куча вопросов, на поиск ответов которых тратишь много времени. но открывая плейлисты с Вашими уроками.. ну реально хочется прыгать от счастья, автор как будто читает мысли и предугадывает твои проблемы и ошибки. и главное, что это и не перегруженный материал, после него намного проще уже работать с текстовой документацией, дополняя полученные знания, ведь автор дает мощную базу. спасибо большое!🥲🥲
Здравствуйте! А почему для удаления узла с двумя потомками не брать больший узел из левого поддерева? Разве это не будет тоже самое что брать наименьший из правого ?
Да, можно брать больший из левого поддерева. А ещё лучше при каждом удалении поочерёдно брать из левого и правого поддеревьев, чтобы дерево в целом оставалось сбалансированным. И тогда операции в дереве будут работать даже быстрее, чем в Красно-Чёрном или AVL дереве, не асимптотически быстрее, но в константу раз быстрее. Правда, для этого ещё необходимо, чтобы добавляемые и удаляемые узлы были случайны, что на практике не всегда бывает.
Это из-за рекурсивного вызова функции show_tree(). Когда функция вызывается, она помещается в стек вызова функций и извлекается оттуда при завершении. Т.к. при рекурсии функции не завершаются сразу, то этот стек вызовов растет, пока не дойдем до листовой вершины. Тогда очередная функция завершается и мы продолжаем выполнение предыдущей вызванной функции. Так и попадаем обратно )
Selfedu, я конечно понимаю, что вопрос не по теме, но я не слишком сильно разбираюсь в ООП, изучаю его, но идет трудно. Так вот, как реализовать создание такого количества экземпляров какого хочешь? Я имею ввиду, что-то на примере вкладок в браузере, их можно создавать бесконечно, но как это реализовано? (Конечно я не собираюсь создавать вкладки, просто интересуюсь, как именно это работает)
это невероятно, Вы самый лучший преподаватель! я никогда не пишу комменты на ютубе, но здесь просто не могу промолчать. вот изучаешь материал по документации, по другим видео и остается куча вопросов, на поиск ответов которых тратишь много времени. но открывая плейлисты с Вашими уроками.. ну реально хочется прыгать от счастья, автор как будто читает мысли и предугадывает твои проблемы и ошибки. и главное, что это и не перегруженный материал, после него намного проще уже работать с текстовой документацией, дополняя полученные знания, ведь автор дает мощную базу. спасибо большое!🥲🥲
У Вас дар! Вы так просто объясняете, такие сложные вещи! Везёт Вашим студентам!
Сергей, отличный плейлист. Уже много всего другого пересмотрел, у вас получилось очень хорошо всё объяснить. Спасибо большое
какой красивый рекурсивный алгоритм прохода в глубину 😍
Благодаря тебе, сейчас разобрался с рекурсивным поиском в глубину, спасибо! Подпишусь!
Спасибо вам огромное за ваши лёгкие и понятные объяснения.Вы просто мастер обучения😊
Как всегда, очень понятное и подробное объяснение! Спасибо огромное!
Спасибо за видео, визуализация очень помогает понять, что происходит!)
Сергей, вы как всегда, на высоте!
Просто приятно слушать на работе😁. Спасибо Сергей.
Спасибо! Вы отлично объясняете.
Круто как раз сейчас задание с решающим деревом в курсе по ООП, можно попробовать все расказанное решить самому, а потом посмотреть как правильно
Шикарное объяснение, спасибо:)
Курс годный! Спасибо!
супер!❤❤❤❤
Спасибо Сергей, как раз прохожу ваш курс по ООП где это дерево ^_^
В питоне можно сразу ветку обрубить присвоив потомку None, сборщик уже сам с последующими потомками разберется
Я так был счастлив когда ты реализацию на C++ делал а тут ...( Резко решил только на питоне сделать 💔
Здравствуйте! А почему для удаления узла с двумя потомками не брать больший узел из левого поддерева? Разве это не будет тоже самое что брать наименьший из правого ?
Да, можно брать больший из левого поддерева. А ещё лучше при каждом удалении поочерёдно брать из левого и правого поддеревьев, чтобы дерево в целом оставалось сбалансированным. И тогда операции в дереве будут работать даже быстрее, чем в Красно-Чёрном или AVL дереве, не асимптотически быстрее, но в константу раз быстрее. Правда, для этого ещё необходимо, чтобы добавляемые и удаляемые узлы были случайны, что на практике не всегда бывает.
Сергей, можно вопрос? Как функция show_tree() по рекурсии возвращает нас обратно, после того как узнала что слева и справа None. Спасибо!
Это из-за рекурсивного вызова функции show_tree(). Когда функция вызывается, она помещается в стек вызова функций и извлекается оттуда при завершении. Т.к. при рекурсии функции не завершаются сразу, то этот стек вызовов растет, пока не дойдем до листовой вершины. Тогда очередная функция завершается и мы продолжаем выполнение предыдущей вызванной функции. Так и попадаем обратно )
Можно показать все это на практике? желательно на Python!
Да 6 обходов 3 позиции для обработки прямой и инверсный порядок. Усё...
лайчищеееееееееее
Selfedu, я конечно понимаю, что вопрос не по теме, но я не слишком сильно разбираюсь в ООП, изучаю его, но идет трудно. Так вот, как реализовать создание такого количества экземпляров какого хочешь? Я имею ввиду, что-то на примере вкладок в браузере, их можно создавать бесконечно, но как это реализовано? (Конечно я не собираюсь создавать вкладки, просто интересуюсь, как именно это работает)
ЛНР? 😮
ЛНР здорового человека
@@ScreamOFF в точку)