Текст – линейная последовательность символов
Текст – линейная последовательность слов (слово - линейная последовательность символов)
Текст – линейная последовательность строк, строки состоят из слов, слова – из символов и т.д.
Математическая модель текста – иерархическая структура представления (дерево).
Единый тип звена:
typedef Tlink *PTLink;
class TLink
{
PTLink pNext;
int Atom; // =1 – звено-атом
union {PTLink pDown; char Symb;}
Таблица с вычисляемым входом (хеш-таблица) – это таблица, элементы которой располагаются в соответствии с некоторой функцией расстановки (хеш-функцией)
Функция расстановки f (ключ) вычисляет для каждого элемента таблицы по его ключу номер (позицию) элемента в массиве.
0…N–1
или 1…N
Организация прямого доступа в рассмотренном виде приводит к неэффективному использованию памяти - требуется больше памяти (М >> 1) - количество используемых ключей, как правило, существенно меньше теоретически возможного набора
Размер памяти для представления таблицы значительно меньше возможного количества имен (M << N), и, как результат, получаемые по ключам числовые значения необходимо преобразовывать к диапазону номеров (адресов) строк памяти
Функция (хеширования, перемешивания, рассеивания) расстановки (hash - мешанина, путаница) - функция преобразования значения ключа к номеру (адресу) строки памяти для хранения записи H : K -> L (L = (0, ..., M - 1))
Таблицы с вычислимыми адресами (хеш-таблицы, перемешиваемые таблицы) - таблицы, представление которых организуется при использовании функции расстановки
Метод цепочек
Замечания к открытому перемешиванию как способу размешения коллизий:
Широко используемый подход для разрешения коллизий - метод цепочек, когда все записи, для которых функция хеширования определяет одно и тоже значение,представляются в виде линейного списка.
Открытое перемешивание еще называют закрытым хэшированием, метод цепочек - открытое хэширование.