ВУЗ:
Составители:
Рубрика:
Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
Для хранения телефонной книги будем использовать хэш-таблицу из
26 групп (по количеству букв латинского алфавита). Ключевым
значением поиска будет являться имя абонента. Хэш-функция будет
определять номер группы по первой букве этого имени.
Данная хэш-функция является простой, однако она не обеспечивает
равномерного распределения информации по группам: некоторые буквы
гораздо чаще встречаются в именах, чем другие.
При реализации хэш-таблицы хранение каждой группы будем
осуществлять в виде односвязного списка, а сама хэш-таблица будет
представлять собой массив этих списков. Таким образом, приложение
«Телефонная книга» содержит четыре класса:
• класс информации об абоненте (Info);
• класс одного элемента списка (Element);
• класс списка для хранения группы хэш-таблицы (List);
• класс для хранения хэш-таблицы (HashTable).
Приведем объявления этих классов:
// предварительное объявление классов
class List;
class HashTable;
// класс информации об абоненте
class Info
{
private:
char fio[50]; // имя абонента
char phone[20]; // номер телефона
public:
// конструктор с инициализацией данных об абоненте
Info(char*, char*);
// конструктор по умолчанию
Info();
// конструктор копирования
Info(const Info&);
// методы получения и установки имени абонента
char* GetFIO();
void SetFIO(char*);
// методы получения и установки номера телефона
char* GetPhone();
void SetPhone(char*);
// дружественные классы и функции
friend class List;
friend ostream& operator << (ostream&, Info&);
friend ostream& operator << (ostream&, List&);
180
Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М. Для хранения телефонной книги будем использовать хэш-таблицу из 26 групп (по количеству букв латинского алфавита). Ключевым значением поиска будет являться имя абонента. Хэш-функция будет определять номер группы по первой букве этого имени. Данная хэш-функция является простой, однако она не обеспечивает равномерного распределения информации по группам: некоторые буквы гораздо чаще встречаются в именах, чем другие. При реализации хэш-таблицы хранение каждой группы будем осуществлять в виде односвязного списка, а сама хэш-таблица будет представлять собой массив этих списков. Таким образом, приложение «Телефонная книга» содержит четыре класса: • класс информации об абоненте (Info); • класс одного элемента списка (Element); • класс списка для хранения группы хэш-таблицы (List); • класс для хранения хэш-таблицы (HashTable). Приведем объявления этих классов: // предварительное объявление классов class List; class HashTable; // класс информации об абоненте class Info { private: char fio[50]; // имя абонента char phone[20]; // номер телефона public: // конструктор с инициализацией данных об абоненте Info(char*, char*); // конструктор по умолчанию Info(); // конструктор копирования Info(const Info&); // методы получения и установки имени абонента char* GetFIO(); void SetFIO(char*); // методы получения и установки номера телефона char* GetPhone(); void SetPhone(char*); // дружественные классы и функции friend class List; friend ostream& operator << (ostream&, Info&); friend ostream& operator << (ostream&, List&); 180
Страницы
- « первая
- ‹ предыдущая
- …
- 178
- 179
- 180
- 181
- 182
- …
- следующая ›
- последняя »