Создан заказ №3009917
14 мая 2018
Требуется реализовать односвязный список на C
Как заказчик описал требования к работе:
Требуется реализовать односвязный список на языке C.
Список является динамической структурой данных, состоящей из звеньев одного типа, связанных между собой указателями. Каждое звено будем представлять в виде структуры, которая содержит указатель на следующий элемент и, в общем случае, указатель ти
па void*, который представляет элемент, хранимый в списке. void* может указывать на память произвольного типа, контроль над операциями с этим указателем лежит на пользователе. В таком варианте каждое звено списка может хранить что угодно (массив, структуру и т.д.). Для простоты можно считать, что каждое звено хранит один int и вместо указателя сделать второй элемент звена просто целым числом.
typedef struct listNode listNode;
struct listNode {
listNode* pNext;
void* pData;
} listNode;
Начало списка --- указатель на первое звено. Если список пустой, то указатель нулевой. Все звенья хранятся в динамической памяти, которая выделяется под каждое звено отдельно. Базовые операции над списком, которые необходимо реализовать в лабораторной:
Создание списка из n элементов. Прототип: listNode* createList(int size). Функция создаёт список требуемого размера и возвращает указатель на его голову.
Удаление списка. Прототип: void deleteList(listNode** pHead). Функция принимает адрес указателя на голову списка, удаляет все звенья списка и зануляет значение указателя на голову.
Вставка элемента в список listNode* insert_next(listNode* pNode). Функция создаёт новое звено вставляет его в список после заданного, возвращает указатель на новое звено.
Удаление элемента из списка void delete_next(listNode* pNode). Функция удаляет элемент, следующий для заданного элемента.
Поиск элемента с заданным значением. Для простоты будем считать, что значение это указатель void* (или int). Прототип: listNode* find(void* elem).
Список возможных функций неполный. Можно его дополнить по своему желанию.
Кроме списка необходимо написать программу, которая его использует. В простейшем случае это может быть просто создание списка, печать элементов, а потом демонстрация всех реализованных операций. Желательно, чтобы программа была многофайловой: заголовочный файл списка, реализация списка и реализация примера использования.
Дополнительно можно привети пример более содержательного использования списка. Например, отсортировать список
подробнее
Заказчик
заплатил
заплатил
200 ₽
Заказчик не использовал рассрочку
Гарантия сервиса
Автор24
Автор24
20 дней
Заказчик принял работу без использования гарантии
15 мая 2018
Заказ завершен, заказчик получил финальный файл с работой
5
Требуется реализовать односвязный список на C.jpg
2019-05-28 21:51
Последний отзыв студента о бирже Автор24
Общая оценка
5
Положительно
Данный автор: приятен в общении, понял что надо выполнить. Работа сделана без замечаний. Выполнено оговоренного срока!! Я доволен!