
- •Лабораторная работа № 1 структура данных дерево
- •Теоретические сведения
- •Синтаксис объявления класса tTreeNode
- •Синтаксис объявления класса tTree
- •Программа работы
- •Контрольные вопросы
- •Лабораторная работа № 2 бинарные деревья
- •Теоретические сведения
- •Синтаксис объявления класса tBinTreeNode
- •Синтаксис объявления класса tBinTree
- •Программа работы
- •Контрольные вопросы
- •Лабораторная работа № 3 бинарные деревья поиска
- •Теоретические сведения
- •Синтаксис объявления класса tFindTreeNode
- •Синтаксис объявления класса tFindTree
- •Программа работы
- •Контрольные вопросы
- •Лабораторная работа № 4 сбалансированные деревья. Пирамида.
- •Теоретические сведения
- •Синтаксис объявления класса tHeap
- •Пирамидальная сортировка
- •Программа работы
- •Контрольные вопросы
- •Лабораторная работа № 5 алгоритмы сортировки данных
- •Теоретические сведения
- •Алгоритмы внутренней сортировки
- •Программа работы
- •Контрольные вопросы
- •Лабораторная работа № 6 структура данных граф
- •Теоретические сведения
- •Программа работы
- •Контрольные вопросы
- •Библиографический список
- •Содержание
Контрольные вопросы
Записать ADT – формат и объявление класса TTreeNode.
Записать реализацию метода AddChild класса TTreeNode и объяснить его работу.
Записать реализацию метода InsertChild класса TTreeNode и объяснить его работу.
Записать реализацию метода DeleteChild класса TTreeNode и объяснить его работу.
Записать ADT – формат и объявление класса TTree.
Записать реализацию метода Add класса TTree и объяснить его работу.
Записать реализацию метода Insert класса TTree и объяснить его работу.
Записать реализацию метода Delete класса TTree и объяснить его работу.
Записать реализацию метода AddChild класса TTree и объяснить его работу.
Записать реализацию метода InsertChild класса TTree и объяснить его работу.
Записать реализацию метода DeleteChild класса TTree и объяснить его работу.
Представить строку ‘Программирование’ в виде бинарного дерева и записать результат его прохода всеми четырьмя способами.
Записать и протестировать в программе оператор равно для класса TTree.
Записать и протестировать в программе оператор не равно для класса TTree.
Записать и протестировать в программе метод нахождения количества узлов дерева.
Записать и протестировать в программе метод нахождения глубины дерева.
Записать и протестировать в программе метод нахождения плотности дерева.
Записать и протестировать в программе не рекурсивный метод прямого прохождения дерева.
Записать и протестировать в программе не рекурсивный метод обратного прохождения дерева.
Записать и протестировать в программе не рекурсивный метод симметричного прохождения дерева.
Записать и протестировать в программе метод поиска узла с заданными данных, объяснив преимущества использования для этого деревьев.
Определить глубину и плотность следующих деревьев:
Лабораторная работа № 5 алгоритмы сортировки данных
Цель работы: изучить алгоритмы сортировки данных и проанализировать их достоинства и недостатки с помощью разработанных шаблонных функций для упорядочивания элементов одномерных массивов.
Теоретические сведения
Сортировка (Sorting) – это упорядочение элементов списка по какому-либо критерию.
В качестве критерия сортировки могут выступать как числа, так и другие показатели. Например, символы, слова, биты и т.д. Критерии сортировки часто называют ключами (key).
Все алгоритмы сортировки оцениваются по вычислительной сложности и по затратам оперативной памяти компьютера.
Вычислительная сложность – это время, необходимое для выполнения алгоритма сортировки. Она оценивается в зависимости от количества исходных данных и их начального состояния с учетом затрат времени как на перестановку элементов, так и на их сравнение друг с другом.
Затраты памяти – это дополнительный объем физической памяти компьютера, необходимой для выполнения алгоритма сортировки. При оценке этого показателя не учитывается место, которое занимает исходный массив данных, и независящие от исходных данных затраты на реализацию алгоритма, например, на хранение кода программы.
Алгоритмы сортировки, которые не требуют дополнительных затрат памяти, называются сортировкой на месте.
В зависимости от сферы применения алгоритмы сортировки бывают:
Внутренняя сортировка – оперирует с массивами, целиком помещающимися в оперативной памяти с произвольным доступом к любому элементу. Данные обычно упорядочиваются на том же месте, без дополнительных затрат памяти.
Внешняя сортировка – оперирует с данными, которые расположены на периферийных устройствах с последовательным доступом. Например, сортировка в файлах, дисках, флеш-накопителях. Невозможность произвольного доступа к любому элементу из-за большого объема данных, которые нельзя поместить в оперативной памяти компьютера, накладывает некоторые дополнительные ограничения на алгоритмы и приводит к специальным методам упорядочения, обычно использующим дополнительное дисковое пространство. Кроме того, доступ к данным на носителе производится намного медленнее, чем операции с оперативной памятью.
Кроме этих показателей используют и другие характеристики алгоритмов сортировок:
Устойчивость (Stability) – отсутствие перестановок равных элементов.
Естественность – повышение эффективности алгоритма при обработке уже упорядоченных, или частично упорядоченных данных.
Сравнимость – наличие только операций сравнений элементов друг с другом, без дополнительной информации о них. Существуют более эффективные алгоритмы для определенных типов данных, которые используют не только сравнения элементов. Например, блочная или карманная сортировка (Bucket sort) .
На практике чаще всего используют алгоритмы внутренней сортировки на месте.