diff --git a/stage0/modules/data-structures-part-1/algorithms.md b/stage0/modules/data-structures-part-1/algorithms.md index 74fc1da87..4c0cb2e81 100644 --- a/stage0/modules/data-structures-part-1/algorithms.md +++ b/stage0/modules/data-structures-part-1/algorithms.md @@ -234,16 +234,25 @@ binarySearchRecursiveMethod(arr, 5); // -1 ### Двоичное дерево -- Двоичное дерево — структура данных, в которой каждый узел имеет максимум два дочерних элемента. Дочерние элементы бывают левым и правым. - Ключ левого дочернего узла меньше, чем у родительского. - Ключ правого дочернего узла больше, чем у родительского. +- Двоичное дерево — это такая структура данных, в которой каждый узел имеет максимум два дочерних элемента. Дочерние элементы бывают левым и правым. Деревья разработаны для оптимизирования списка и сортировки. Используются для создания двоичных деревьев поиска. + +![Binary tree](./images/binary-tree.png) + +#### Двоичное дерево поиска + +Двоичное дерево с помощью сравнивания ключей решает, в каком направлении следовать к дочернему узлу. + +- Ключ левого дочернего узла меньше, чем у родительского. +- Ключ правого дочернего узла больше, чем у родительского. +- Не может быть дублирующих узлов. - Оптимальны для сортировки и поиска. + - Эффективность («О» большое): - - Индексирование: O(log n). - - Поиск: O(log n). - - Вставка: O(log n). + - Индексирование: двоичное дерево поиска — O(log n). + - Поиск: двоичное дерево поиска — O(log n). + - Вставка: двоичное дерево поиска — O(log n). -![Binary tree](./images/binary-tree.png) +![Binary search tree](./images/binary-search-tree.png) #### Что можно сделать до старта курса diff --git a/stage0/modules/data-structures-part-1/images/binary-search-tree.png b/stage0/modules/data-structures-part-1/images/binary-search-tree.png new file mode 100644 index 000000000..fa789a842 Binary files /dev/null and b/stage0/modules/data-structures-part-1/images/binary-search-tree.png differ