Структуры данных Python: дерево предоставления

Деревья Python во многом похожи на связанные списки, но с иерархическим порядком. Деревья состоят из узлов, которые связаны с другими узлами. Нижний узел, не имеющий ссылки, называется листьями . Узел, связанный с другим узлом, называется родительским, а связанный с ним - дочерними.

Дерево обычно строится с широким набором узлов или каскадной глубокой структурой. Итак, вы можете сказать, что дерево широкое или глубокое .

Широкое дерево против глубокой древовидной структуры

Эффективная версия древовидной структуры известна как двоичное дерево поиска. Вот где вы разрешаете родительскому узлу иметь два дочерних узла. Узел слева имеет меньшее значение, чем узел справа. Построение такого дерева позволяет очень эффективно перемещаться и находить определенное значение.

пример бинарной древовидной структуры

В приведенном выше примере, если бы я хотел найти значение 98 из 39, я бы двинулся вправо как 98> 39 - из 70 снова вправо - из 97 двигаться вправо, и за три хода я нашел желаемый узел.

Итак, давайте создадим узел дерева на Python и посмотрим, как он работает. Все, что нам нужно для создания узла дерева, - это имя. Мы автоматически назначим ему пустой список для всех последующих дочерних узлов.

Если вы читали мои предыдущие статьи о структуре данных Python, это должно показаться вам знакомым.

Теперь, как и с любой структурой данных, мы должны помнить о практических функциях, которые мы хотим иметь в нашем дереве. Добавление и удаление узла - очевидный выбор, который также легко реализовать.

Для добавления я использую метод append () , а для удаления я просто перебираю список self.children и повторно добавляю все узлы, за исключением узла, который я хочу удалить.

Затем мы захотим пройти по дереву, чтобы найти нужную информацию. Чтобы создать этот метод, мы начнем с пустого списка, который будет заполняться каждым посещаемым узлом. Пока у этого узла есть дочерние узлы, мы вытащим его и добавим в список узлов для посещения.

Как вы думаете, где лучше всего использовать такую ​​структуру данных? Возможно, если мы добавим некоторую логику для доступа к узлам, мы сможем разделить множество привилегий, которые может иметь пользователь.

Деревья данных - отличный и широко используемый инструмент в мире программирования. Я надеюсь, что это краткое введение, по крайней мере, дало представление о том, почему вы хотите знать об этих структурах.

Suggested posts

Поиск информации о доменных именах

Отрывок из книги «Маленькие программные инструменты Sharp» Брайана П. Хогана.

Поиск информации о доменных именах

Когда вы делаете запрос на facebook.com, ваш компьютер ищет доменное имя, чтобы преобразовать это доменное имя в IP-адрес, чтобы ваш компьютер мог установить это соединение.

Как бесплатно запускать плагины ChatGPT с помощью Langchain

Как бесплатно запускать плагины ChatGPT с помощью Langchain

Вы, должно быть, слышали обо всех новых мощных плагинах ChatGPT, таких как Browser, Code Interpreter и т. д. Но есть проблема: доступ к плагинам ограничен списком ожидания, и поэтому многие не имеют к нему доступа.

Related posts

Больше никаких паролей — как пароли заменят ваш пароль

Больше никаких паролей — как пароли заменят ваш пароль

Во избежание двусмысленности будут использоваться следующие термины; Аутентификатор; Мобильный телефон, используемый для входа на веб-сайт; веб-сайт или приложение, которое пользователь использует для выполнения запроса на вход в систему; Поставщик, предоставляющий данную услугу, например

Финансирование удаления углерода в 24 финансовом году

Разбивка запросов на ассигнования Carbon180 по направлениям

Финансирование удаления углерода в 24 финансовом году

Элисон Ли, управляющий советник по связям с правительством Процесс ежегодных ассигнований федерального правительства занимает центральное место в наших усилиях по финансированию удаления двуокиси углерода (CDR). Каждый год Carbon180 направляет запросы в различные офисы Конгресса, чтобы помочь определить, куда пойдут доллары в следующем году.

Опасные разговоры

Опасные разговоры

Если мы хотим продолжать процветать на этой планете, нам придется вести опасные разговоры. Те, которые бросают вызов тому, что мы сделали, что мы делаем и что мы в настоящее время собираемся продолжать делать (или планируем делать).

Два года в дизайне: хорошее, плохое и уродливое…

Два года в дизайне: хорошее, плохое и уродливое…

«Привет, Siri, включи Me Dive Оливии Дин». В мае 2021 года я начал стажировку в Future Academy Africa в Акуре, Нигерия.