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

голоса
12

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

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

Задан 23/02/2009 в 14:37
источник пользователем
На других языках...                            


17 ответов

голоса
6

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

Ответил 23/02/2009 в 14:40
источник пользователем

голоса
31

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

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

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

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

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

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

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

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

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

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

Dupe. Смотрите это и это .

Ответил 23/02/2009 в 14:40
источник пользователем

голоса
11

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

Ответил 23/02/2009 в 14:44
источник пользователем

голоса
1

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

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

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

Ответил 23/02/2009 в 14:53
источник пользователем

голоса
1

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

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

Ответил 23/02/2009 в 15:01
источник пользователем

голоса
0

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

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

Ответил 23/02/2009 в 15:30
источник пользователем

голоса
5

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

Ответил 23/02/2009 в 15:59
источник пользователем

голоса
1

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

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

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

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

Ответил 26/02/2009 в 14:13
источник пользователем

голоса
1

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

Ответил 02/03/2009 в 22:49
источник пользователем

голоса
1

System.Collections.Generic.SortedList <T> использует дерево двоичного поиска в качестве основной реализации. То же самое справедливо и для System.Collections.GenericSortedDictionary <T> . Любой код , использующий SortedList <T> или SortedDictionary <T> использует дерево двоичного поиска.

Ответил 03/03/2009 в 17:35
источник пользователем

голоса
4
  • Написать простой рекурсивный спуск парсер, и он генерирует дерево синтаксического анализа.

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

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

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

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

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

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

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

Ответил 03/03/2009 в 18:59
источник пользователем

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

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

Ответил 03/03/2009 в 19:14
источник пользователем

голоса
0

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

Очень удобно

Ответил 03/03/2009 в 19:19
источник пользователем

голоса
3

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

Ответил 03/03/2009 в 21:31
источник пользователем

голоса
0

Существует декартово дерево реализуется в ActionScript. Источники:

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

Ответил 05/02/2010 в 09:36
источник пользователем

голоса
0

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

  • Он может быть представлен в виде (гнездовой) списка. Например, это намного проще, чтобы показать большое дерево на бумаге (с заголовками, подзаголовками, абзацами и вложенными списками) или на экране компьютера, чем график.
  • Вы можете указать на элемент в дереве, используя простой путь строку (или стек), например, «HTTP / StackOverflow.com / Users / Dimitri C», то, что гораздо сложнее сделать в графике.
Ответил 05/02/2010 в 09:43
источник пользователем

голоса
0

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

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

Ответил 29/04/2018 в 17:48
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more