- •1.Классификация структур данных
- •2.Операции над структурами
- •3. Структурность данных и технологии программирования
- •4. Целочисленные типы
- •5. Вещественные типы
- •6. Битовые типы
- •7. Логический тип
- •8. Символьный тип
- •9. Перечислимый тип
- •10. Интервальный тип
- •11. Указатели
- •12. Массивы
- •13. Свободные массивы
- •14. Треугольные и разреженные матрицы
- •15. Множества
- •16. Записи
- •17. Абстрактный тип данных «Список»
- •18. Методы реализации списков
- •19. Двунаправленные списки
- •20. Абстрактный тип данных «Стек»
- •21. Методы реализации стеков
- •22. Применение стеков при разработке приложений
- •23. Абстрактный тип данных «Очередь»
- •24. Методы реализации очередей
- •25. Абстрактный тип данных «Дек». Методы реализации
- •26. Строки: логическая структура, операции и представление в памяти
- •27. Деревья. Их обходы
- •28. Помеченные деревья и деревья выражений
- •29. Абстрактный тип данных «Дерево»
- •30. Методы реализации деревьев
- •31. Двоичные деревья. Методы их представления
- •32. Коды Хаффмана
- •33. Абстрактный тип данных «Множество»
- •34. Абстрактный тип данных с операторами множеств
- •35. Методы реализации абстрактного типа данных «Множество»
- •36. Словари. Методы их реализации
- •37. Структуры данных основанные на хеш-таблицах
- •38. Оценка эффективности хеш-функций
- •39. Очереди с приоритетами. Методы их реализации
- •40. Реализация очереди с приоритетами частично упорядоченными деревьями
- •41. Деревья двоичного поиска. Методы их реализации
- •42. Нагруженные деревья. Методы их реализации
- •43. Реализация множеств посредством сбалансированных 2-3 деревьев
- •45. Задача наибольшей общей подпоследовательности
- •44. Множества с операторами merge и find. Методы их реализации
- •46. Сбалансированные и несбалансированные деревья поиска
- •48. Методы представления графов
- •49. Внешняя сортировка. Основные характеристики сортировок методом слияний
- •50. Алгоритм прямого слияния
- •51. Алгоритм естественного слияния
- •52. Сбалансированное многопутевое слияние
- •53. Многофазная сортировка
- •54. Хранение данных в файлах
- •55. Внешние деревья поиска
28. Помеченные деревья и деревья выражений
Дерево – это совокупность элементов, называемых узлами, и отношений («родительских»), образующих иерархическую структуру узлов.
Часто бывает полезным сопоставить каждому узлу дерева метку или значение. Дерево, у которого узлам сопоставлены метки, называется помеченным деревом. Метка узла – это значение, которое «хранится» в узле. Полезна следующая аналогия: дерево – список, узел – позиция, метка – элемент.
Правила соответствия меток деревьев элементам выражений следующие:
Метка каждого листа соответствует операнду и содержит его значение;
Метка каждого внутреннего (родительского) узла соответствует оператору.
Часто при обходе деревьев составляется список не имен узлов, а их меток.
Деревья выражений представляют код в виде древовидной структуры данных, каждый узел в которой является выражением, например вызовом метода или двоичной операцией, такой как x < y.
29. Абстрактный тип данных «Дерево»
Дерево – это совокупность элементов, называемых узлами, и отношений («родительских»), образующих иерархическую структуру узлов.
Одно из наиболее важных применений деревьев – это использование их при разработке реализаций различных АТД.
Операторы:
PARENT(n, Т). Эта функция возвращает родителя (parent) узла n в дереве Т.
LEFTMOST_CHILD(n, Т). Данная функция возвращает самого левого сына узла n в
дереве Т.
RIGHT_SIBLING(n, Т). Эта функция возвращает правого брата узла n в дереве Т и значение , если такового не существует.
LABEL(n, Т). Возвращает метку узла n дерева Т.
ROOT(T). Возвращает узел, являющимся корнем дерева Т.
MAKENULL(Т). Этот оператор делает дерево Т пустым деревом.
30. Методы реализации деревьев
Представление деревьев с помощью массивов
Возможно, самым простым представлением дерева Т, поддерживающим оператор PARENT (Родитель), будет линейный массив А, где каждый элемент А[i] является указателем или курсором на родителя узла i.
Корень дерева Т отличается от других узлов тем, что имеет нулевой указатель или указатель на самого себя как на родителя.
Представление деревьев с помощью списков сыновей
Важный и полезный способ представления деревьев состоит в формировании для каждого узла списка его сыновей.
Эти списки можно представить любым методом, но чаще всего для этих целей применяются связанные списки.
???Представление через левых сыновей и правых братьев
31. Двоичные деревья. Методы их представления
Двоичное дерево может быть или пустым деревом, или деревом, у которого любой узел или не имеет сыновей, или имеет либо левого сына, либо правого сына, либо обоих.
Обход двоичных деревьев в прямом и обратном порядке в точности соответствует таким же обходам обычных деревьев.
При симметричном обходе двоичного дерева с корнем n левым поддеревом Т1 и правым поддеревом Т2 сначала проходится поддерево Т1 затем корень n и далее поддерево Т2.
Представление двоичных деревьев
Реализация с помощью указателей
Коды Хаффмана
