Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

сиаод / 1-34 / 24. Добавление элемента в двоичном дереве поиска

..pdf
Скачиваний:
69
Добавлен:
11.05.2015
Размер:
267.65 Кб
Скачать

24. Добавление элемента в двоичном дереве поиска.

Добавление элемента Алгоритм:

Если дерево пусто, заменить его на дерево с одним корневым узлом (K, ПУСТО, ПУСТО) и остановиться.

Иначе сравнить K с ключом корневого узла X.:

1.Если K>=X, рекурсивно добавить (K,V) в правое поддерево Т.

2.Если K<X, рекурсивно добавить (K,V) в левое поддерево Т.

Алгоритм InsertTree (T, k) //k – добавляемое значение

1.if T=nil

2.New (T)

3.T^.key←k

4.T^.left←nil

5.T^.right←nil

6.else

7.if (k<T^.key) then InsertTree (T^.left, k)

8.else InsrtTree (T^.right, k)

9.end if

10.end if

11.return T

Вычислительная сложность.

Средний вариант – O(log n), худший случай – O(n).

Рассмотрим вставку узла 8 в дерево BinSTree_1. Начав с корневого узла 25, определяем, что узел 8 должен быть в левом поддереве узла 25 (8<25). В узле 10 определяем, что место узла 8 должно быть в левом поддереве узла 10, которое в данный момент пусто. Узел 8 вставляется в дерево в качестве левого сына узла

10.