Содержание
- 2. Новая тема Быстрый поиск СД для организации данных с эффективной реализацией набора операций, в т.ч. таких,
- 3. 14.10.2014 Деревья поиска Быстрый поиск Деревья поиска Идеально сбалансированные бинарные деревья Идеально сбалансированным назовем такое бинарное
- 4. 14.10.2014 Деревья поиска Идеально сбалансированные бинарные деревья Инвариант такого БД: ∀ x ∈ T |nL(x) −
- 5. 14.10.2014 Деревья поиска Примеры идеально сбалансированных деревьев В идеально сбалансированном дереве число узлов n и высота
- 6. 14.10.2014 Деревья поиска Алгоритм построения идеально сбалансированного дерева по последовательности данных a1, a2, …, an Пусть,
- 7. 14.10.2014 Деревья поиска Считаем, что тип данных binTree, представляющий бинарное дерево, определен как ранее typedef char
- 8. binTree makeTree (unInt n) // построение идеально сбалансированного дерева c n узлами { unInt nL, nR;
- 9. 14.10.2014 Деревья поиска a, b, c, d, e, f, g, h, i a, b, c, d,
- 10. 14.10.2014 Деревья поиска Примеры работы алгоритма. Пусть во входном файле находится последовательность a, b, c, d,
- 11. 14.10.2014 Деревья поиска Замечание 1. Алгоритм строит такие идеально сбалансированные деревья, что nL(x) − nR(x) =
- 12. 14.10.2014 Деревья поиска Упражнение
- 13. 14.10.2014 Деревья поиска Бинарные деревья поиска (БДП) Пусть k (b)– значение ключа в узле b дерева
- 14. 14.10.2014 Деревья поиска Инвариант БДП (T: BSTree): Пусть k – значение ключа в узле, тогда в
- 15. 14.10.2014 Деревья поиска Бинарные деревья поиска Операция поиска заданного элемента x: base в непустом БДП b:
- 16. 14.10.2014 Деревья поиска binTree Locate (base x, binTree b) // b – должно быть БДП {
- 17. 14.10.2014 Деревья поиска Поскольку в этой рекурсивной функции каждый экземпляр порождает (альтернативно) не более одного следующего
- 18. 14.10.2014 Деревья поиска Более короткий вариант того же цикла (без переменных r и found, но предполагающий
- 19. 14.10.2014 Деревья поиска Очевидно, что время поиска (количество шагов по дереву) зависит от положения искомого узла
- 20. 14.10.2014 Деревья поиска Действительно, пусть имеется идеально сбалансированное дерево из элементов a, c, d, e, f,
- 21. 14.10.2014 Деревья поиска Далее будут рассмотрены несколько видов БДП, коррекция которых (добавление или исключение узлов) производится
- 22. 14.10.2014 Деревья поиска Случайные бинарные деревья поиска Добавление элемента в БДП Введем дополнительное поле записи count,
- 23. 14.10.2014 Деревья поиска void SearchAndInsert (base x, binSTree &b) { if (b==NULL) { b = new
- 24. 14.10.2014 Деревья поиска Пусть во входном потоке находится последовательность элементов, по которой функция SearchAndInsert строит БДП:
- 25. 14.10.2014 Деревья поиска Структура случайного БДП полностью зависит от того («случайного ») порядка, в котором элементы
- 26. 14.10.2014 Деревья поиска
- 27. 14.10.2014 Деревья поиска acdb acbd bacd, bcad, bcda; 2) badc, bdac, bdca; 3) cabd, cadb, cdab;
- 28. 14.10.2014 Деревья поиска
- 29. 14.10.2014 Деревья поиска Из 24 бинарных деревьев в этом примере имеется 12 идеально сбалансированных деревьев и
- 30. 14.10.2014 Деревья поиска Число bn структурно различных бинарных деревьев с n узлами bk bn − k
- 31. 14.10.2014 Случайные деревья поиска 2 Начальное условие b0 = 1. Далее b1 = b0 b0 =
- 32. 14.10.2014 Случайные деревья поиска 2 Тогда для чисел Каталана при больших значениях n справедливо т. е.
- 33. 14.10.2014 Случайные деревья поиска 2 Несколько первых чисел Каталана Конец отступления про числа Каталана
- 34. 14.10.2014 Деревья поиска Операция поиска минимального элемента в БДП Если в дереве b левое поддерево пусто,
- 35. 14.10.2014 Деревья поиска Удаление элемента из случайного БДП Удалить элемент из случайного БДП проще всего, если
- 36. 14.10.2014 Деревья поиска В ситуации b -> rt == NULL (поскольку узел b − не лист,
- 38. Скачать презентацию