ВУЗ:
Составители:
Рубрика:
92
записей о контактах (имя абонента и его телефон). Основной функцией
приложения является поиск телефона нужного абонента.
Для хранения информации о контактах телефонной книги реализуем
собственную хэш-таблицу, элементами которой будут являться «страницы»
телефонной книги.
В самом простом случае все данные, которые хранятся в хэш-таблице,
разбиваются на определенное количество групп, для хранения каждой из
которых используется отдельная область памяти. Определение номера
группы, в которую должны быть помещены данные, происходит по значению
некоторого ключевого поля с помощью специальной хэш-функции.
Поскольку хэш-функция однозначно определяет номер группы, в которую
попадает конкретная запись, при ее последующем поиске значительно
сокращается количество просматриваемых данных (достаточно просмотреть
только одну группу хэш-таблицы). Для эффективного поиска желательно
подбирать хэш-функцию таким образом, чтобы обеспечить равномерное
заполнение всех групп.
Для хранения телефонной книги будем использовать хэш-таблицу из 33
групп (по количеству букв русского алфавита). Ключевым значением поиска
будет являться имя абонента. Хэш-функция будет определять номер группы
по первой букве этого имени. Таким образом, как и в бумажных телефонных
книгах, записи будут сгруппированы по начальным буквам имен абонентов.
Данная хэш-функция является простой, однако она не обеспечивает
равномерного распределения информации по группам: некоторые буквы
гораздо чаще встречаются в именах, чем другие.
При реализации хэш-таблицы хранение каждой группы будем
осуществлять в виде односвязного списка, а сама хэш-таблица будет
представлять собой словарь из этих списков с ключом – буквой. Таким
образом, приложение «Телефонная книга» содержит два класса:
класс информации об абоненте (Info);
класс для хранения хэш-таблицы (PhoneBook).
Приведем код класса информации об абоненте:
class Info
{
string fio; // имя абонента
string phone; // номер телефона
// конструктор с инициализацией данных об абоненте
public Info(string f, string p)
{
fio = f;
записей о контактах (имя абонента и его телефон). Основной функцией приложения является поиск телефона нужного абонента. Для хранения информации о контактах телефонной книги реализуем собственную хэш-таблицу, элементами которой будут являться «страницы» телефонной книги. В самом простом случае все данные, которые хранятся в хэш-таблице, разбиваются на определенное количество групп, для хранения каждой из которых используется отдельная область памяти. Определение номера группы, в которую должны быть помещены данные, происходит по значению некоторого ключевого поля с помощью специальной хэш-функции. Поскольку хэш-функция однозначно определяет номер группы, в которую попадает конкретная запись, при ее последующем поиске значительно сокращается количество просматриваемых данных (достаточно просмотреть только одну группу хэш-таблицы). Для эффективного поиска желательно подбирать хэш-функцию таким образом, чтобы обеспечить равномерное заполнение всех групп. Для хранения телефонной книги будем использовать хэш-таблицу из 33 групп (по количеству букв русского алфавита). Ключевым значением поиска будет являться имя абонента. Хэш-функция будет определять номер группы по первой букве этого имени. Таким образом, как и в бумажных телефонных книгах, записи будут сгруппированы по начальным буквам имен абонентов. Данная хэш-функция является простой, однако она не обеспечивает равномерного распределения информации по группам: некоторые буквы гораздо чаще встречаются в именах, чем другие. При реализации хэш-таблицы хранение каждой группы будем осуществлять в виде односвязного списка, а сама хэш-таблица будет представлять собой словарь из этих списков с ключом – буквой. Таким образом, приложение «Телефонная книга» содержит два класса: класс информации об абоненте (Info); класс для хранения хэш-таблицы (PhoneBook). Приведем код класса информации об абоненте: class Info { string fio; // имя абонента string phone; // номер телефона // конструктор с инициализацией данных об абоненте public Info(string f, string p) { fio = f; 92
Страницы
- « первая
- ‹ предыдущая
- …
- 91
- 92
- 93
- 94
- 95
- …
- следующая ›
- последняя »