- •СТРУКТУРЫ ДАННЫХ И АЛГОРИТМЫ
- •Глава 1 Линейные списки
- •Понятие структуры данных
- •Тип указатель
- •Линейный список
- •Линейный однонаправленный (односвязный) список
- •Линейный двунаправленный (двусвязный) список
- •Практическое задание «Линейные списки»
- •Задачи для самостоятельной работы
- •Контрольные вопросы
- •Глава 2 Структуры данных стек и очередь
- •Понятие структуры данных стек и очередь
- •Структура данных стек
- •Структура данных очередь
- •Пример решения задачи с использованием стека
- •Практическое задание «Стеки и очереди»
- •Задачи для самостоятельной работы
- •Контрольные вопросы
- •Глава 3 Древовидные структуры данных
- •Понятие структуры данных дерево
- •Представление структуры бинарное дерево в памяти
- •Обход дерева
- •Основные операции над деревом
- •Ввод дерева
- •Практическое задание «Бинарные деревья»
- •Задачи для самостоятельной работы
- •Контрольные вопросы
- •Глава 4 Структура данных таблица
- •Понятие структуры данных таблица
- •Представление таблицы в памяти
- •Организация хеш-таблиц
- •Выбор функции расстановки
- •Разрешение коллизии
- •Операции над таблицами
- •Практическое задание «Управление таблицами»
- •Задачи для самостоятельной работы
- •Контрольные вопросы
- •Глава 5 Алгоритмы упорядочения данных
- •Понятие операции упорядочения
- •Алгоритмы упорядочения
- •Сортировка слиянием
- •Основные алгоритмы сортировки посредством сравнений
- •Улучшенные алгоритмы сортировки сравнением
- •Практическое задание «Алгоритмы сортировки»
- •Задачи для самостоятельной работы
- •Контрольные вопросы
- •Библиографический список
11 В текстовом файле, разделенном на строки, содержится хештаблица. Строка файла содержит один элемент хеш-таблицы и номер его позиции в таблице (нумерация идет с нуля). Элемент хештаблицы включает ключ – натуральное число в диапазоне от 10 до 9999 и значение – вещественное число. Для построения хештаблицы использовалась следующая хеш-функция:
а) f(ключ) = [N ∙ (ключ∙A mod 1)], где А = (√5 - 1) / 2, N = 1000.
При разрешении коллизии использовалось линейное рехеширование: f (ключ, i) = (f(ключ) + i) mod N, здесь значение i равно 1, 2, ... . Добавить в таблицу еще один элемент.
б) f(ключ) = ключ mod N, где N = 1000.
При разрешении коллизии использовалось линейное рехеширование: f (ключ, i) = (f(ключ) + i) mod N, здесь значение i равно 1, 2, ... . Найти элемент с заданным ключом.
Контрольные вопросы
1Понятие таблицы.
2Способы организации таблиц.
3Операции над таблицами.
4Чем отличается последовательный поиск в упорядоченной таблице от последовательного поиска в неупорядоченной таблице?
5Чем отличается включение элемента в упорядоченную таблицу от включения элемента в неупорядоченную таблицу?
6Хеш-функция – как ее построить?
7Методы рехеширования.
8Сравнительные оценки операций работы с таблицами.
105
