- •Лабораторная работа № 1 рациональные числа
- •Теоретические сведения
- •Синтаксис объявления класса tRational
- •Программа работы
- •Исходные данные
- •Контрольные вопросы
- •Лабораторная работа № 2 комплексные числа
- •Теоретические сведения
- •Синтаксис объявления класса tComplex
- •Программа работы
- •Исходные данные
- •Контрольные вопросы
- •Лабораторная работа № 3 векторы
- •Теоретические сведения
- •Синтаксис объявления класса tVector
- •Программа работы
- •Контрольные вопросы
- •Лабораторная работа № 4 матрицы
- •Теоретические сведения
- •Арифметические операции с матрицами
- •Синтаксис объявления класса tMatrix
- •Основные свойства и методы компонента StringGrid
- •Программа работы
- •Исходные данные
- •Исходные данные
- •Контрольные вопросы
- •Лабораторная работа № 5 строки
- •Теоретические сведения
- •Программа работы
- •Исходные данные
- •Контрольные вопросы
- •Лабораторная работа № 6 стек
- •Теоретические сведения
- •Синтаксис объявления класса tStack
- •Программа работы
- •Контрольные вопросы
- •Лабораторная работа № 7 очередь
- •Теоретические сведения
- •Синтаксис объявления класса tQueue
- •Программа работы
- •Контрольные вопросы
- •Лабораторная работа № 8 деревья
- •Теоретические сведения
- •Синтаксис объявления класса tTreeNode
- •Синтаксис объявления класса tTree
- •Программа работы
- •Контрольные вопросы
- •Библиографический список
- •Содержание
Программа работы
Создать новый проект в меню FileðNewðVCL Forms Application, добавить к нему два новых модуля (FileðNewðUnit) и сохранить все файлы в папке с именем ‘…\Лабораторная работа № 16’.
В заголовочной части второго модуля объявить класс TTreeNode и все его методы в соответствии с ADT – форматом.
В заголовочной части третьего модуля объявить класс TTree и все его методы в соответствии с ADT – форматом, подключить, первоначально, второй модуль.
Создать на форме компоненты Edit1 ¸ EditN и RadioGroup1, и в компонентах Edit1 ¸ EditN-1 представить буквы Вашей фамилии в виде бинарного дерева.
Рис. 8. Примерное расположение компонентов на форме
Добавить к классу TTree методы прямого, обратного, симметричного и поперечного прохождения дерева, используя для первых трех рекурсию, а для последнего – очередь.
В обработчике выбора пунктов компонента RadioGroup1 сформировать бинарное дерево из букв Вашей фамилии, объявив объекты TTree и TTreeNode для типа сhar, и вывести результаты соответствующего способа прохода данного дерева в компонент EditN в зависимости от выбранного пункта в компоненте RadioGroup1.
Запустить программу на выполнение и записать в отчет расположение компонентов на форме, обработчик выбора пунктов компонента RadioGroup1 и полученные результаты, представив их в виде таблицы.
Ответить на контрольный вопрос, записав в отчет разработанный метод, обработчик его использования и результат выполнения программы.
Контрольные вопросы
Записать ADT – формат и объявление класса TTreeNode.
Записать реализацию метода AddChild класса TTreeNode и объяснить его работу.
Записать реализацию метода InsertChild класса TTreeNode и объяснить его работу.
Записать реализацию метода DeleteChild класса TTreeNode и объяснить его работу.
Записать ADT – формат и объявление класса TTree.
Записать реализацию метода Add класса TTree и объяснить его работу.
Записать реализацию метода Insert класса TTree и объяснить его работу.
Записать реализацию метода Delete класса TTree и объяснить его работу.
Записать реализацию метода AddChild класса TTree и объяснить его работу.
Записать реализацию метода InsertChild класса TTree и объяснить его работу.
Записать реализацию метода DeleteChild класса TTree и объяснить его работу.
Представить строку ‘Программирование’ в виде бинарного дерева и записать результат его прохода всеми четырьмя способами.
Записать и протестировать в программе оператор равно для класса TTree.
Записать и протестировать в программе оператор не равно для класса TTree.
Записать и протестировать в программе метод нахождения количества узлов дерева.
Записать и протестировать в программе метод нахождения глубины дерева.
Записать и протестировать в программе метод нахождения плотности дерева.
Записать и протестировать в программе не рекурсивный метод прямого прохождения дерева.
Записать и протестировать в программе не рекурсивный метод обратного прохождения дерева.
Записать и протестировать в программе не рекурсивный метод симметричного прохождения дерева.
Записать и протестировать в программе метод поиска узла с заданными данных, объяснив преимущества использования для этого деревьев.
Определить глубину и плотность следующих деревьев: