Более опытные коллеги подсказали, что из минусов выделить можно то, что в АА-дереве в отличие от КДЧ нам необходимо в каждой ноде хранить ее высоту, тратим дополнительную память; Почему-то сам об этом не вспомнил)
Доброго времени суток) Кажется, эта статья не постулирует что AA-деревья это серебрянная пуля и не сравнивает разные варианты решения проблемы балансировки; Моей задачей было скорее рассказать о том, как работает конкретно это дерево и поделиться этим материалом с остальными, возможно кому-то это сэкономит время) Что касается 2-3 деревьев - да, было бы очень неплохо сначала рассказать о них, а после уже про КЧД, учту если буду готовить в будущем материалы на эту тему)
Доброго времени суток) Это отличный вопрос, но к сожалению на данный момент "подводных камней" я не увидел, возможно нужно придумать какую-нибудь практическую задачу для АА-дерева и после этого что-нибудь всплывает; Если узнаю - обязательно дополню статью)
Доброго времени суток) Пойду по порядку) Статья не несет цели заставить вас делать так и только так, она скорее разъясняет принципы работы тк лично мне показалось что материалов по теме маловато
1. Ну во всех материалах я видел что информацию в ноде называют key, но думаю это несущественно, можно назвать как угодно; Как я полагаю key пошло от того что информация ноды используется для поиска в дереве, как будто бы это некоторый "ключ" ноды, как ключ в БД :) Не уверен что это так, но моя интерпретация такова)
2. Да, тут вы правы, с точки зрения хранения информации выгоднее использовать boolean, само собой, но повторюсь что я хотел сделать упор на разъяснении принципов, а не на оптимальном решении; Лично мне показалось что код "node.color == 'red'" воспринимается лучше чем "node.is_red", поэтому я и реализовал эту вещь так, думаю это просто вкусовщина)
3. По поводу того зачем это - это отличный вопрос и хороший повод написать новую статью; Я преподаю курс по алгоритмам и мне нужно было раскрыть тему балансировок; Материалы касаемо того как деревья работают я нашел, а на придумать пример в реальной жизни к сожалению времени не хватило; Думаю в следующий раз когда буду затрагивать эту тему, попробую что-нибудь придумать и может даже собрать в статью)
Более опытные коллеги подсказали, что из минусов выделить можно то, что в АА-дереве в отличие от КДЧ нам необходимо в каждой ноде хранить ее высоту, тратим дополнительную память; Почему-то сам об этом не вспомнил)
Доброго времени суток)
Кажется, эта статья не постулирует что AA-деревья это серебрянная пуля и не сравнивает разные варианты решения проблемы балансировки;
Моей задачей было скорее рассказать о том, как работает конкретно это дерево и поделиться этим материалом с остальными, возможно кому-то это сэкономит время)
Что касается 2-3 деревьев - да, было бы очень неплохо сначала рассказать о них, а после уже про КЧД, учту если буду готовить в будущем материалы на эту тему)
Доброго времени суток) Это отличный вопрос, но к сожалению на данный момент "подводных камней" я не увидел, возможно нужно придумать какую-нибудь практическую задачу для АА-дерева и после этого что-нибудь всплывает; Если узнаю - обязательно дополню статью)
Доброго времени суток)
Пойду по порядку)
Статья не несет цели заставить вас делать так и только так, она скорее разъясняет принципы работы тк лично мне показалось что материалов по теме маловато
1. Ну во всех материалах я видел что информацию в ноде называют key, но думаю это несущественно, можно назвать как угодно; Как я полагаю key пошло от того что информация ноды используется для поиска в дереве, как будто бы это некоторый "ключ" ноды, как ключ в БД :) Не уверен что это так, но моя интерпретация такова)
2. Да, тут вы правы, с точки зрения хранения информации выгоднее использовать boolean, само собой, но повторюсь что я хотел сделать упор на разъяснении принципов, а не на оптимальном решении; Лично мне показалось что код "node.color == 'red'" воспринимается лучше чем "node.is_red", поэтому я и реализовал эту вещь так, думаю это просто вкусовщина)
3. По поводу того зачем это - это отличный вопрос и хороший повод написать новую статью; Я преподаю курс по алгоритмам и мне нужно было раскрыть тему балансировок; Материалы касаемо того как деревья работают я нашел, а на придумать пример в реальной жизни к сожалению времени не хватило; Думаю в следующий раз когда буду затрагивать эту тему, попробую что-нибудь придумать и может даже собрать в статью)