В программировании дерево представляет собой структуру данных, представляющую иерархию элементов, где каждый элемент называется узлом. Структура включает корневой узел (верхний элемент иерархии) и дочерние узлы, ветвящиеся от корня.
Свойства узлов дерева
Узел дерева обычно обладает:
- Значением или элементом данных (содержащаяся в узле информация)
- Списком детей (ссылки на дочерние узлы)
- Родительской ссылкой (необязательно)
Примеры использования
Файловая система служит примером реального дерева, где каталоги являются узлами с детьми (подкаталоги и файлы), а файлы — листовыми узлами.
В базах данных: реляционные базы содержат узлы как соединяющие таблицы, а в NoSQL (например, MongoDB) деревьями могут быть вложенные объекты.
Пример кода на JavaScript
Моделирование каталога интернет-магазина в виде дерева:
const catalog = {
name: "Catalog",
children: [
{
name: "Category 1",
children: [
{
name: "Subcategory 1",
children: [
{ name: "Product 1", price: 10.99, description: "This is a product" },
{ name: "Product 2", price: 15.99, description: "This is another product" }
]
},
{
name: "Subcategory 2",
children: [
{ name: "Product 3", price: 20.99, description: "Yet another product" }
]
}
]
},
{
name: "Category 2",
children: [
{
name: "Subcategory 3",
children: [
{ name: "Product 4", price: 5.99, description: "One more product" }
]
}
]
}
]
};
Практическое применение
Деревья используются для моделирования иерархических отношений (организационные схемы, навигационные меню), эффективного поиска данных, синтаксического анализа в языках программирования.
В JavaScript деревья применяются для представления категорий интернет-магазина и моделирования социальных сетей, где пользователи представлены узлами, а подписки — связями между ними для аналитики поведения пользователей.