Prefix tree
Реализуйте индексную таблицу, реализованную в следующем виде: Префиксное дерево. Таблица должна поддерживать следующие операции: a. Добавление записи b. Удаление записи c. Поиск записи по заданному ключу d. Вывод всех хранимых записей на экран (отладочный метод, необходимый для демонстрации работы таблицы). БД должна быть реализована в виде группы классов (в идеале, в виде отдельной библиотеки), с интерфейсным классом, реализующим основные методы работы с базой данных. Таблица индексов должна быть реализована в виде отдельного класса. Несколько объектов этого класса не должны влиять друг на друга и хранить данные изолированно друг от друга. Запись таблицы индексов отличается от записи с реальными данными (из предыдущего задания) Запись должна включать в себя текстовое поле, по которому будет осуществляться поиск (оно является ключевым для записи в таблице индексов) и целочисленное поле (являющееся ключом из первого задания) Например: Фамилия (текстовое) - ключевое поле (не путайте с ключом из предыдущего задания) Телефон (целочисленное) (соответствует ключу записи из задания 1, но в данной записи ключом не является) В случае реализации в виде префиксного дерева, в текстовом поле можно хранить не полное значение поля, а соответствующий префикс (в соответствии с алгоритмом построения префиксного дерева). Примечание: Основное назначение индексной таблицы – осуществлять быстрый поиск по какому-либо полю записи и находить значение, соответствующее ключу в основном хранилище данных с полными записями. Именно поэтому в записях индексной таблицы хранятся не записи полностью, а лишь 2 значения – поле, по которому производим поиск и соответствующее ему значение, по которому можно найти полную запись в основном хранилище (значение ключа из основного хранилища). Также необходимо реализовать тестовую программу, демонстрирующую работу индексной таблицы – в таблицу должны добавляться новые записи, удаляться существующие, а также должен производиться поиск записей с выводом на экран. Тестовая программа может проделывать эти действия в автоматическом режиме (но с выводом информации на экран) или в режиме ручного ввода. Предусмотрите вывод всего содержимого таблицы на экран в удобной форме (см. пункт d выше).