Объектно-ориентированное программирование на C++. Андрианова А.А - 182 стр.

UptoLike

Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
HashTable(int);
// деструктор хэш-таблицы
~HashTable();
// метод добавления новой записи об абоненте
void PushAbonent(char*, char*);
// метод удаления записи по имени абонента
void DeleteAbonent(char*);
// метод поиска записи по имени абонента
bool FindAbonent(char*, Info&);
// метод проверки наличия в хэш-таблице
// заданного имени абонента
bool HasAbonent (char*);
// дружественная функция вывода
friend ostream& operator<<(ostream&, HashTable&);
};
Определение методов классов Info и Element не представляет
особой сложности. Класс List был подробно разобран ранее. Поэтому
остановимся на рассмотрении методов класса HashTable.
// метод добавления новой записи об абоненте
void HashTable::PushAbonent(char* abonent, char* phone)
{
// вычисление номера группы по имени абонента
int num = abonent[0] - 'A';
// добавление записи в группу с номером num
segments[num].PushAbonent(abonent, phone);
}
// метод удаления из списка записи по имени абонента
void HashTable::DeleteAbonent(char* abonent)
{
// вычисление номера группы по имени абонента
int num = abonent[0] - 'A';
// удаление записи из группы с номером num
segments[num].DeleteAbonent(abonent);
}
// метод поиска записи по имени абонента
bool HashTable::FindAbonent(char* abonent, Info& i)
{
// вычисление номера группы по имени абонента
int num =abonent[0] - 'A';
// возвращаем true, если абонент найден в группе num,
// false – в противном случае
return segments[num].FindAbonent(abonent, i);
}
182
                               Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
           HashTable(int);
           // деструктор хэш-таблицы
           ~HashTable();
           // метод добавления новой записи об абоненте
           void PushAbonent(char*, char*);
           // метод удаления записи по имени абонента
           void DeleteAbonent(char*);
           // метод поиска записи по имени абонента
           bool FindAbonent(char*, Info&);
           // метод проверки наличия в хэш-таблице
           // заданного имени абонента
           bool HasAbonent (char*);
           // дружественная функция вывода
           friend ostream& operator<<(ostream&, HashTable&);
      };

    Определение методов классов Info и Element не представляет
особой сложности. Класс List был подробно разобран ранее. Поэтому
остановимся на рассмотрении методов класса HashTable.

       // метод добавления новой записи об абоненте
       void HashTable::PushAbonent(char* abonent, char* phone)
       {
            // вычисление номера группы по имени абонента
            int num = abonent[0] - 'A';
            // добавление записи в группу с номером num
            segments[num].PushAbonent(abonent, phone);
       }


       // метод удаления из списка записи по имени абонента
       void HashTable::DeleteAbonent(char* abonent)
       {
            // вычисление номера группы по имени абонента
            int num = abonent[0] - 'A';
            // удаление записи из группы с номером num
            segments[num].DeleteAbonent(abonent);
       }

       // метод поиска записи по имени абонента
       bool HashTable::FindAbonent(char* abonent, Info& i)
       {
            // вычисление номера группы по имени абонента
            int num =abonent[0] - 'A';
            // возвращаем true, если абонент найден в группе num,
            // false – в противном случае
            return segments[num].FindAbonent(abonent, i);
       }

182