Условие задачи
Требуется написать программу на языке С ++
- Данные считываются из входных файлов text.txt и words.txt
- Результат выводится на дисплей
Необходимо
1. Составить закрытую хеш-таблицу, содержащую слова из файла words.txt и их позиции в считанном тексте text.txt
2. реализовать функции добавления, удаления и поиска элементов в хеш-таблице.
3. в программе:
- считать входные файлы text.txt и words.txt содержащий текст и слова на английском языке
- реализовать алгоритм Бойера и Мура и сего помощью найти все позиции слов в тексте
- сделать поиск введенного с клавиатуры слова в хеш-таблице и вывести все позиции слова в тексте на экран, если слова нет в тексте или в файле words.txt нужно вывести значение -1.
Ответ
#include iostream
#include cmath
#include vector
#include algorithm
#include locale
#include functional
#include cctype
#include unordered_map
#include fstream
#include string
#include windows.h
using namespace std;
const int N = 80; //минимальный размер хэш-таблицы
//константа для линейного опробования
const int c = 1;
//класс хеш-таблицы
template typename key,typename value
class hash_table {
private:
vectorpairkey, value h; //ключ - значение
int m; //размер таблицы
hashkey hash_s; //чтобы не заморачиваться над типами
protected:
//хеш функция для линейного и квадратичного опробованияint hs(key k) {return hash_s(k)...