- •Содержание
- •1. Организация таблицы идентификаторов
- •1.1. Исходные данные
- •1.2. Назначение таблиц идентификаторов
- •1.3. Метод простого рехеширования
- •1.4. Простой список
- •1.5. Результаты
- •Принципы работы лексического анализатора
- •2. Проектирование лексического анализатора
- •2.1. Исходные данные
- •Результаты
- •3. Проектирование синтаксического анализатора
- •3.1. Исходные данные
- •3.2. Построение синтаксического анализатора
- •3.3. Результаты
- •Список использованной литературы
1.4. Простой список
Простой список является простейшим способом организации ТИ. Он состоит в том, что добавление элементов ведется в порядке их поступления. Поиск в этом случае требует сравнения с каждым элементом ТИ, пока не будет найден подходящий. Для ТИ, содержащей n элементов, в среднем будет выполнено n/2 сравнений. Если n велико, то способ не является эффективным.
Поскольку при заполнении таблицы идентификаторов основными операциями являются добавление элемента в таблицу и поиск элемента в ней, на рис. 3 и рис. 4 представлены блок-схемы этих операций для рассматриваемого метода.
Рис.
3. Блок-схема добавления элемента в
таблицу идентификаторов по простого
списка.
Рис. 4. Блок-схема алгоритма поиска элемента в таблицу идентификаторов, организованной по методу простого списка.
1.5. Результаты
Для сравнения метода простого рехеширования и простого списка выбран текстовый файл, содержащий 20 строк.
В результате работы программы получены следующие данные, которые представлены в табл. 1.
Таблица 1
|
Метод простого рехеширования |
Простой список |
Коллизий |
5 |
|
Сравнений |
3 |
17 |
Среднее число сравнений |
0,058 |
0,8571 |
На основе полученных
результатов можно сделать следующие
вывод
ы.
Недостатки метода простого рехеширования:
элементы могут попадать в ячейки с адресами, которые потом будут совпадать со значениями хеш-функции, что приводит к возникновению дополнительных коллизий;
среднее время на размещение элемента и на поиск элемента в таблице зависит от заполненности таблицы идентификаторов и качества используемой хеш-функции;
требование неполного заполнения таблицы ведет к неэффективному использованию объема доступной памяти.
Достоинством метода простого рехеширования является то, что он позволяет добиться неплохих результатов для эффективного поиска элемента в таблице (лучших, чем метод бинарного дерева).
Достоинства простого списка:
нет необходимости заполнять пустыми значениями таблицу идентификаторов (это можно сделать только для хеш-таблицы), то есть память используется более экономно;
элементы не могут
попадать в ячейки с адресами, которые
потом будут совпадать со значениями
хеш-функции, то есть коллизии не будут
возникать;
время на размещение элемента и на поиск элемента в таблице не зависит от среднего числа коллизий, возникающих при вычислении хеш-функции.
Недостатком метода простого списка является большое время поиска.
Простое рехеширования является более эффективным методом организации таблицы идентификаторов. Именно он и будет в дальнейшем использован для хранения информации об идентификаторах в курсовой работе.
