Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка3.2.doc
Скачиваний:
37
Добавлен:
19.08.2019
Размер:
3.14 Mб
Скачать

Программа работы

  1. Создать новый проект в меню FileðNewðVCL Forms Application, добавить к нему два новых модуля (FileðNewðUnit) и сохранить все файлы в папке с именем ‘…\Лабораторная работа № 3’.

  2. В заголовочной части второго модуля объявить класс TFindTreeNode и все его методы в соответствии с ADT – форматом.

  3. В заголовочной части третьего модуля объявить класс TFindTree и все его методы в соответствии с ADT – форматом, подключить, первоначально, второй модуль.

  4. Создать на форме компоненты Edit1 ¸ EditN, Button1 и Memo1.

  5. В компонентах Edit1 ¸ EditN-1 представить буквы Вашей фамилии в виде бинарного дерева.

Рис. 8. Примерное расположение компонентов на форме

  1. Добавить к классу TFindTreeNode полe FCount для хранения количества узлов дерева с одинаковыми значениями, инициализировав его в конструкторе единичным значением.

  2. Изменить метод вставки класса TFindTreeNode так, чтобы при совпадении данных вместо добавления нового узла изменялся счетчик количества узлов с такими же значениями.

  3. В обработчике нажатия кнопки Button1 сформировать бинарное дерево поиска из букв Вашей фамилии, объявив объекты TFindTree и TFindTreeNode для типа сhar, и вывести результат его прохода в компонент Memo1 в формате: Буква Вашей фамилии и количество раз, которое она встречается в Вашей фамилии, решив задачу «Конкорданс».

  4. Запустить программу на выполнение и записать в отчет объявление и определение классов TFindTreeNode и TFindTree, расположение компонентов на форме, обработчик нажатия кнопки Button1 и полученные результаты, представив их в виде таблицы или изображения на форме.

  5. Ответить на контрольный вопрос, записав в отчет разработанный метод, обработчик его использования и результат выполнения программы.

Контрольные вопросы

  1. Записать ADT – формат и объявление класса TTreeNode.

  2. Записать реализацию метода AddChild класса TTreeNode и объяснить его работу.

  3. Записать реализацию метода InsertChild класса TTreeNode и объяснить его работу.

  4. Записать реализацию метода DeleteChild класса TTreeNode и объяснить его работу.

  5. Записать ADT – формат и объявление класса TTree.

  6. Записать реализацию метода Add класса TTree и объяснить его работу.

  7. Записать реализацию метода Insert класса TTree и объяснить его работу.

  8. Записать реализацию метода Delete класса TTree и объяснить его работу.

  9. Записать реализацию метода AddChild класса TTree и объяснить его работу.

  10. Записать реализацию метода InsertChild класса TTree и объяснить его работу.

  11. Записать реализацию метода DeleteChild класса TTree и объяснить его работу.

  12. Представить строку ‘Программирование’ в виде бинарного дерева и записать результат его прохода всеми четырьмя способами.

  13. Записать и протестировать в программе оператор равно для класса TTree.

  14. Записать и протестировать в программе оператор не равно для класса TTree.

  15. Записать и протестировать в программе метод нахождения количества узлов дерева.

  16. Записать и протестировать в программе метод нахождения глубины дерева.

  17. Записать и протестировать в программе метод нахождения плотности дерева.

  18. Записать и протестировать в программе не рекурсивный метод прямого прохождения дерева.

  19. Записать и протестировать в программе не рекурсивный метод обратного прохождения дерева.

  20. Записать и протестировать в программе не рекурсивный метод симметричного прохождения дерева.

  21. Записать и протестировать в программе метод поиска узла с заданными данных, объяснив преимущества использования для этого деревьев.

  22. Определить глубину и плотность следующих деревьев: