Реальные примеры древовидных структур - PullRequest
12 голосов
/ 23 февраля 2009

Я ищу несколько примеров древовидных структур, которые используются в коммерческих / свободных программных проектах, современных или старых. Я могу видеть примеры в Википедии, но я ищу более конкретные примеры и как они используются. Например, первичные ключи в базах данных (из того, что я прочитал) хранятся в структуре BST или в варианте BST (не стесняйтесь меня поправлять)

Мой вопрос не ограничен деревьями бинарного поиска (BST), он может включать любые варианты, такие как красно-черный, AVL и т. Д.

Ответы [ 17 ]

1 голос
/ 23 февраля 2009

Глядя на любой из продуктов Datawarehousing, вы увидите умные способы хранения и детализации в виде дерева. Вы получаете древовидную структуру для местоположения (страна, регион, штат, округ, город и т. Д.) И времени (год, месяц, день, час). Эти два измерения являются общими для многих доменов, но многие другие данные реального мира также поддаются дереву.

Например, в розничной торговле продуктами питания, у корня дерева у вас могут быть продукты, которые могут углубиться в молочные продукты, фрукты и овощи и т. Д. После одной нитки вы можете иметь. Банки с бобами, на верхнем уровне вы будете разговаривать в грузовиках, потом спускаетесь к поддонам, ящикам, жестяным размерам. Все различные SKU (складские единицы) важны для кого-то в магазине или компании. Затем разные виды бобов, разные поставщики, производители - все это примеры деревьев одного и того же размера.

Все различные продукты образуют массивное дерево с разными способами нарезки и обработки.

1 голос
/ 03 марта 2009

DNS-запросов .. все, что использует карту, использует AVL

0 голосов
/ 29 апреля 2018

Поставьте себя в качестве корня дерева и теперь сделайте своих родителей детьми дерева, а родителей родителей - детьми дерева, и это может в полной мере использовать дерево.

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

0 голосов
/ 05 февраля 2010

Классификация объектов в целом очень часто проводится с использованием деревьев. И очень часто граф будет гораздо более подходящим, чем дерево, однако дерево предлагает два больших преимущества перед графом:

  • Может быть представлен как (вложенный) список. Например, гораздо проще показать большое дерево на бумаге (с заголовками, субтитрами, абзацами и вложенными списками) или на экране компьютера, чем на графике.
  • Вы можете указать на элемент в дереве, используя простую строку пути (или стек), например, «http / StackOverflow.com / Users / Dimitri C», что гораздо сложнее сделать на графике.
0 голосов
/ 23 февраля 2009

В моем проекте, системе редактирования и вменения данных обследования / переписи, мы используем двоичное дерево решений, чтобы решить, какие переменные записи вменять или не вменять. Бинарное дерево решений позволяет нам эффективно принимать решения о путях в дереве, которое мы должны и не должны принимать.

Я думаю, что этот подход (хотя, возможно, не только двоичные деревья) также используется в приложениях искусственного интеллекта

0 голосов
/ 05 февраля 2010

В ActionScript реализована трэп. Источники:

Трэп является частью AS3Commons Collections Framework . Модифицированный трэп используется для поддержки включенных коллекций SortedSet и SortedMap.

0 голосов
/ 03 марта 2009

Мы используем древовидную структуру для моделирования системы классификации деталей. Детали классифицируются на «классы», которые имеют родительские классы и так далее. Классы верхнего уровня управляют текстом для вкладок в нашем пользовательском интерфейсе каталога. Классы также используются для применения правил ценообразования, определения «горячих точек» на транспортном средстве, где детали отображаются в «конфигураторе» и т. Д. Мы моделируем дерево в SQL с использованием вложенных наборов Джо Селко и загружаем их по требованию в память для лучшего спектакль. Наиболее распространенные вопросы, которые мы задаем: «Кто мои потомки» и «Является ли этот класс моим предком?»

Очень удобно

...