Бинарное дерево. Написать кодом на "С".
Задание:
Создайте систему знаний, которая поможет определить сорт фруктов или овощей. База знаний состоит из вопросов и ответов «да» и «нет».
Система сначала загружает базу вопросов и ответов. Каждый вопрос или ответ находится ровно в одной строке. Ответы отмечены звездочкой в начале строки. За первым вопросом следует загрузка следующего шага, да, а затем шага нет. Каждый шаг системы знаний - это либо ответ, либо вопрос. База правил заканчивается пустой строкой.
Вопросы и ответы вместе образуют двоичное дерево поиска, написанное в формате предварительного заказа.
Пример базы правил с двумя вопросами и тремя видами товаров:
Он растет на дереве?
* Яблоко
Он растет под землей?
* Морковь
* Салат
После загрузки базы правил укажите количество товаров в базе правил. Если не удается правильно загрузить базу правил, напишите сообщение об ошибке.
Если база правил была загружена, запустите систему знаний с первого вопроса. Отобразите дополнительные вопросы или ответы в зависимости от того, отвечает ли пользователь a для первого варианта или n для второго. Если система находит ответ, напишите сообщение | a | завершить программу. Если пользователь ввел неправильный ввод, напишите сообщение и выйдите из программы.
Пример ввода:
Это фрукты или овощи?
*Яблоко
*Морковь
n
Пример вывода:
Эксперт по буфету это знает.
Знаю 2 вида фруктов и овощей.
Ответьте «a» для первого варианта или «n» для второго варианта.
Это фрукты или овощи?
* Морковь
Конец