Содержание
- 2. Проблема поиска значений Коллекции (вроде массивов и списков) позволяют хранить данные, а также добавлять новые, удалять
- 3. Проблема поиска значений Линейный поиск (как по массиву, так и по списку) может занять слишком много
- 4. Решение проблемы поиска Если данных достаточно много, и приоритетной задачей является поиск значений, тогда динамической структурой
- 5. Строим дерево!
- 6. Определение понятия Дерево – это нелинейная структурированная совокупность элементов. Элементы данных в общем случае называются узлами
- 7. Виды деревьев Сбалансированные деревья K-мерные деревья R-дерево Кучи Изящный граф-звезда Двоичное (бинарное) дерево Красно-чёрное дерево Октодерево
- 8. Схематичное изображение https://habrahabr.ru/post/65617/
- 9. Бинарное дерево Бинарное дерево – это частный случай дерева, в котором каждый узел имеет не более
- 10. Бинарное дерево Левый потомок - дочерний узел слева от текущего узла. Правый потомок - дочерний узел
- 11. Строение одного узла дерева
- 12. Главный принцип Самый главный принцип бинарного дерева заключается в том, что для каждого узла выполняется правило:
- 13. Рекурсия передаёт привет ☺ Бинарное дерево является рекурсивной структурой, поскольку каждое его поддерево само по себе
- 15. Основные операции Поиск элемента Добавление элемента Распечатка данных Изменение значения элемента Удаление элемента Подсчёт количества элементов
- 16. Класс элемента дерева class Node { // inner class! private int value; private Node parent; private
- 17. Распечатка дерева private void showTree(Node elem) { if (elem != null) { showTree(elem.left); System.out.print(elem.getValue()); showTree(elem.right); }
- 18. Подсчёт количества элементов private int getCount(Node elem, int count) { if (elem != null) { count
- 19. Ключ – значение На практике, элементы деревьев чаще всего хранят не просто одно лишь значение, а
- 21. Скачать презентацию