Внимание! Студландия не продает дипломы, аттестаты и иные документы об образовании. Наши специалисты оказывают услуги консультирования в области образования: в сборе информации, ее обработке, структурировании и оформления в соответствии с ГОСТом. Все услуги на сайте предоставляются исключительно в рамках законодательства РФ.

Лабораторная работа: Хеш-таблицы

  • 28.06.2021
  • Дата сдачи: 03.07.2021
  • Статус: Архив
  • Детали заказа: # 119673

Тема: Хеш-таблицы

Задание:
Задачу необходимо решить двумя способами: с выводом в консоль(вариант a) и с записью в файл(вариант b)
Для сдачи работы мне требуется только программа с комментариями



Текст задачи: Написать программу для работы с перемешанной таблицей, использующей перемешивание сцеплением, по запросам оператора.

Перемешанная таблица представлена массивом указателей на элементы таблицы, имеющие следующую структуру:

struct Item{

int key; /* ключ элемента */

char *info; /* указатель на информацию */

Item *next; /* указатель на следующий элемент */

};

Максимальный размер массива указателей ограничен (для задания максимального размера использовать константу – например, const int SIZE = ...;).

Предусмотреть следующие операции:

- включение нового элемента в таблицу при условии, что в таблице не может быть двух эле-ментов с одинаковыми ключами; если при включении нового элемента возникает такая ситуа-ция, на экран должно быть выведено сообщение об ошибке;

- удаление элемента из таблицы по заданному ключу. Если запрошенный элемент в таблице отсутствует, вывести на экран сообщение об ошибке;

- поиск в таблице элемента по заданному ключу; результатом поиска должна быть копия найденного элемента. Если запрошенный элемент в таблице отсутствует, вывести на экран сообщение об ошибке;

- вывод содержимого таблицы на экран.

Разработать два варианта программы:

a) и сама таблица, и информация, относящаяся к элементу таблицы, хранятся в основной памяти;

b) и сама таблица, и информация, относящаяся к элементу таблицы, хранятся во внешней памяти (используется двоичный файл произвольного доступа). Все операции выполняются с таблицей, размещенной в основной памяти. Таблица считывается из файла (или создается в первый раз) в начале сеанса работы и записывается в файл в конце сеанса работы. Информация, относящаяся к элементу таблицы, записывается в файл сразу же при выполнении операции включения в таблицу. Имя файла вводится по запросу из программы.

Примечания:

1. Программа должна содержать несколько функций; функция main должна выполнять: вывод меню, ввод и анализ ответа, вызов на исполнение требуемой функции;

2. В программе нужно предусмотреть проверку правильности ввода данных;

3. Для варианта b) следует модифицировать структуру, определяющую элемент таблицы, включив в нее длину информации и ее смещение в файле;

4. В варианте b) для работы с файлом использовать функции пакета stdio.h; чтение и запись выполнять с помощью fread() и fwrite(), в которых должна быть указана реальная длина информации.

В файлы прикрепляю программу для варианта a, которую я начала писать, но не смогла отладить до конца. Названия функций и общая структура программы в моем варианте соответствует требованиям преподавателям, поэтому ее можно взять за образец

Кроме того, прикрепляю методичку для выполнения варианта b
  • Тип: Лабораторная работа
  • Предмет: Программирование
  • Объем: 3-5 стр.

Можем рассчитать стоимость такой же или похожей работы за 2 минуты

Примеры выполненных работ
103 972 студента обратились к нам за прошлый год
22 оценок
среднее 4.9 из 5