не значення. Потім, додамо елемент. p align="justify"> Insertltem (value: TTableData);, new_cell: PChainCell;
begin
.// Визначення ланцюга, що містить значення.
cell: = OListTops "[value mod NumChains];
// Вставка елемента в початок ланцюга.
New (new_cell);
. Value: = value; _cell *. NextCell: = се! 1л.NextCell,
се! 1л.NextCell: = new_cell;
end;
Хеш-таблиці зазвичай містять тільки один запис з даними ключем. У цьому випадку процедурі InsertIteih перед додаванням елемента необхідно перевірити, чи немає такого елементу в таблиці. p align="justify"> Щоб видалити елемент з хеш-таблиці, обчисліть До mod NumChains, визначивши містить його список. Потім елемент видаляється зі списку. p align="justify"> Removeltem (value: TTableData);, nxt_cell: PChainCell;
begin
// Визначення ланцюга, що містить значення.
cell: = @ ListTops/4 [value mod NumChains]; _cell: = се! 1Л.NextCell;
// Пошук елемента.
while (nxt_cellonil) do
if (nxt_cel! A.Value = value) then break;: = nxt_cell; _cell: = се! 1л.NextCell;; (nxt_cellonil) then
// Осередок знайдена. Видаляємо її.
Се11л.NextCell: = nxt_cellA.NextCell; (nxt_cell);,;
end;
Переваги та недоліки зв'язування
Одна з переваг цього методу полягає в тому, що пов'язані хеш-таблиці ніколи не переповнюються. Завжди простіше здійснити вставку і пошук елементів, навіть якщо елементів в таблиці багато. Але продуктивність деяких методів хешування сильно падає, якщо таблиця практично заповнена. p align="justify"> Видалити елемент із зв'язаної таблиці також дуже просто. Для цього досить видалити комірку елемента з відповідного зв'язаного списку, в той час як у деяких схемах хешування видалити елемент важко або навіть неможливо. p align="justify"> Один з недоліків зв'язування в тому, що якщо число пов'язаних списків відносно невелике, то розмір списків може стати величезним. Щоб додати або знайти елемент, доведеться досліджувати велике число елементів списку. Якщо хеш-таблиця містить 10 пов'язаних списків і ви додаєте до таблиці 10 000 елементів, середня довжина зв'язаного списку складе 1000. Всякий раз, коли вам потрібно буде знайти елемент у таблиці, буде потрібно досліджувати 10...