35
{
public int sizeTable; //
размер таблицы;
static int step = 37; //
шаг для разрешения
//
коллизий
int size; //
число элементов в таблице
public THashItem[] h; //
хеш-таблица
public MyHash(int sizeTable) //
конструктор
public void HashInit() //
метод инициализации
int hashKey(string s) //
хеш-функция
public int AddHash(string fio, //
метод добавления
//
элемента
string phone)
void ClearVisit() //
метод очистки полей
//
посещения
public bool DelHash(string phone, out int i)
//
метод удаления элемента
public int FindHash(string phone, //
метод поиска
//
по ключу
out string FIO, out int count)
}
Конструктор класса задает размер таблицы и
инициализирует массив
h[]
.
Листинг 2.14. Конструктор класса
public MyHash(int sizeTable)
{
this.sizeTable = sizeTable;
h = new THashItem[sizeTable];
HashInit();
}
Метод
HashInit() представлен в листинге 2.15.
12 / 23
36
Листинг 2.15. Метод инициализации
public void HashInit()
{
size = 0;
for (int i=0; i
{
this.h[i].empty = true;
this.h[i].visit = false;
}
Для демонстрации работы с хеш-таблицей создадим оконное приложе-
ние. На форме разместим элемент управления
DataGridView, два элемента
TextBox
для ввода и вывода данных, а также кнопки для выполнения опе-
раций
заполнения таблицы,
добавления,
удаления и поиска абонентов
(рис. 2.1).
Рис. 2.1. Форма с элементами управления
13 / 23
37
Создание объекта происходит в классе
FormMain, там же подготавли-
вается элемент
dataGridView1
.
Do'stlaringiz bilan baham: