Подтвердить что ты не робот

Примеры реальных древовидных структур

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

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

4b9b3361

Ответ 1

Хорошо ли, если примеры являются немногочисленными, то есть относятся к графам и не обязательно к деревьям? Если это так, читайте дальше.

  • Излишне говорить, что большинство парсеров XML/Markup используют деревья. См. Например Apache Xerces. Или анализатор Xalan XSLT. Спасибо mathewsdave26, чтобы напомнить мне!

  • PDF - это формат на основе дерева. Он имеет root node, за которым следует catalog node (они часто совпадают), за которым следует pages node, у которого есть несколько дочерних узлов page. Производители/потребители часто используют сбалансированную реализацию дерева для хранения документа в памяти.

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

  • Flare - это библиотека визуализации, написанная в AS. Вы можете проверить, как отображаются объекты данных. В частности, пакет flare.analytics сильно использует структуру графа, охватывая деревья и т.д.

  • Социальные сети - это текущее модное слово в исследовании CS. Само собой разумеется, что связи/отношения очень естественно моделируются с использованием графиков. Часто деревья используются для представления/идентификации более интересных явлений. Как вы отвечаете на такие вопросы, как "У Гарри и Салли есть общий друг (ы)?"

  • Некоторые очень успешные двигатели физики/игр строят деревья, чтобы точно имитировать движение человека. Дерево в этом случае обычно соответствует набору действий; Контекст определит, какой путь будет сделан для визуализации конкретного ответа.

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

  • Общей проблемой в биоинформатике является поиск огромных баз данных для поиска совпадений для данной строки запроса. Пробки являются обычным явлением там.

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

Dupe. См. this и .

Ответ 2

B в деревьях индексов базы данных B * означает Balanced, а не Binary. Дерево поддерживается на одинаковой глубине, чтобы обеспечить равномерное время доступа.

Ответ 3

  • Ваша файловая система представляет собой древовидную структуру. Поэтому проверьте источник на любую свободную файловую систему.

  • Ваш компилятор генерирует AST из вашего исходного кода в качестве промежуточного этапа. Поэтому проверьте источник на любой свободный компилятор.

Ответ 4

Индексы базы данных обычно хранятся как переменные деревьев B *, которые, несмотря на то, что их имя не являются бинарными деревьями.

Ответ 5

Двоичные деревья использовались для удаления пространственного парирования и скрытой поверхности в 3D-играх старых, я считаю, что один из них использовался в игре Doom.

Ответ 6

  • Напишите простой рекурсивный спуск-парсер и создайте дерево разбора.

  • Структура Билль-Материалы, используемая в производстве (например, автомобиль состоит из подузлов, рекурсивно, вплоть до гаек и болтов).

  • Таблица символов (как используется в компиляторе).

  • План счетов, используемый в управлении проектами. В общем проекте есть подпроекты, к которым могут применяться платежи.

  • Организационная структура компании: подразделения, отделы и т.д.

  • Содержание для документа.

  • Потомки человека, предки человека.

  • Любые Lisp s-выражения, включая любую программу Lisp.

Ответ 7

Автозавершение функций программного обеспечения (например, предложения поисковой системы), IDE-тип/завершение символа, имена электронной почты и адресной книги и т.д.) часто реализуются как Tries, которые являются древовидными структурами.

Ответ 8

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

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

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

Ответ 9

С++ включает в себя ряд коллекций (set, multi_set, map, multi_map), которые обычно реализуются как красно-черные деревья, своего рода сбалансированное дерево.

(Стандарт С++ явно не требует этой реализации, но это самый простой дизайн, отвечающий требованиям сложности.)

Ответ 10

В месте маршрутизатора/коммутатора, с которым я работал, мы использовали кучу древовидных структур, для таблицы маршрутов программного обеспечения мы использовали дерево оснований (довольно общий выбор для таблицы IP-маршрутизации).

В нашей реализации OSPF использовались красно-черные деревья, наша реализация BGP использовала skiplists.

Технически лыжисты не являются древовидными структурами, но на практике они очень похожи, и они действительно классные.

Мы определенно использовали heaps совсем немного, думая об этом, это было некоторое время с тех пор, как я там работал.

Ответ 11

DNS-запросы.. что-либо с использованием карты использует AVL

Ответ 13

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

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

Ответ 14

Мы используем древовидную структуру для моделирования системы классификации деталей. Части классифицируются на "классы", которые имеют родительские классы и т.д. Классы верхнего уровня управляют текстом для вкладок в нашем пользовательском интерфейсе каталога. Классы также используются для применения правил ценообразования, определения "горячих точек" на транспортном средстве, где детали отображаются в "конфигураторе" и т.д. Мы моделируем дерево в SQL с помощью вложенных наборов Joe Celko и загружаем их по требованию в память для лучшего представление. Наиболее распространенные запросы, которые мы делаем, это "кто мои потомки" и "является ли этот класс моим предком?"

Очень удобно

Ответ 15

Вы, ребята, пропустили biggie.

Специальный тип сбалансированного двоичного дерева идеально подходит для текстовых редакторов.

Ответ 16

В ActionScript реализована функция treap. Источники:

Соотношение сторон является частью рамки коллекций AS3Commons. Модифицированный treap используется для поддержки включенных коллекций SortedSet и SortedMap.

Ответ 17

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

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