AutofillPrefixTreeCPP
Описание
Автозаполнение. Префиксное дерево.
Языки
- C++100%
14.10. Домашнее задание
ЗАДАЧА: В качестве итогового задания вам необходимо реализовать программу, выполняющую автозаполнение введенного слова по изначально заданному словарю. То есть, вам необходимо построить дерево, которое будет словарем, а затем выполнить проверку и предложить подходящие варианты слов по введенной части. Дополнение можно реализовываться как по нажатию какой-либо клавиши, так и любым другим способом. После нажатия программа не должна завершаться и ждать нового ввода от пользователя.
Реализовано:
- Префиксное дерево, которе выполняет функцию словаря.
- Метод findWords для получения массива слов удовлетворяющих поиску по ключевому слову.
- Метод insert для вставки новых слов в дерево.
- Другие методы для обеспечения работы класса.
- Интерфейс, позволяющий получать списки слов соответствующих ключевому слову и добавлять новые слова в словарь.
Интерфейс программы:
Перед каждым вводом выводится список слов в словаре:
Keywords in the dictionary: doc doctor document dog dot duck mail man master mode model moment
Далее предлагается ввести часть любого из выше указанных слов или команду для перехода к другому меню:
Enter a part of any keyword from the dictionary (0 - Exit, 1 - Go to adding to the dictionary): doc
После ввода будут выведены слова из словаря, соответствующие введенному ключевому слову:
Keywords for autocomplete: doc doctor document
При выборе команды перехода в меню добавления слов:
Keywords in the dictionary: doc doctor document dog dot duck mail man master mode model moment
Enter a word to add to the dictionary [a-z] (0 - Exit, 1 - Go to autofill): zero
Keywords in the dictionary: doc doctor document dog dot duck mail man master mode model moment zero
При добавлении каждого нового слова программа будет выводить их. В данной программе количество выводимых слов 20. Это можно изменить в параметре max в методе findWords в Input.cpp