Ответ
Древовидная структура данных (Tree) в Java состоит из узлов (Nodes), связанных отношениями "родитель-потомок". Её основные компоненты:
- Корень (Root Node): Самый верхний узел дерева, не имеющий родителя.
- Узел (Node): Основной элемент дерева, который содержит:
- Данные (Data) — хранимое значение (например, целое число, объект).
- Ссылки на дочерние узлы (Children) — например,
leftиrightдля бинарного дерева.
- Лист (Leaf Node): Узел, не имеющий дочерних элементов.
- Внутренний узел (Internal Node): Любой узел, имеющий хотя бы одного потомка (т.е., не являющийся листом).
- Родитель (Parent): Узел, имеющий ссылки на текущий узел как на дочерний.
Почему используется? Деревья эффективны для представления иерархических данных (файловая система, DOM), а также для операций поиска и сортировки (бинарные деревья поиска).
Пример реализации узла для бинарного дерева в Java:
class TreeNode<T> {
T data; // Данные, хранимые в узле
TreeNode<T> left; // Ссылка на левого потомка
TreeNode<T> right; // Ссылка на правого потомка
public TreeNode(T data) {
this.data = data;
this.left = null;
this.right = null;
}
}
// Создание простого дерева
public class BinaryTreeExample {
public static void main(String[] args) {
TreeNode<Integer> root = new TreeNode<>(10); // Корень
root.left = new TreeNode<>(5); // Левый потомок корня
root.right = new TreeNode<>(15); // Правый потомок корня
// Структура:
// 10
// /
// 5 15
}
}