forked from 131/lab6_list
Базовые структуры данных. Список
-
Склонировать репозиторий https://timp.pw/121/lab6_list.git
В этом задании необходимо дописать функции для работы с двусвязным списком. Двусвязный список -- структура данных, которая имеет вид:
struct list_node {
struct list_node *next;
struct list_node *prev;
}
Где поля next и prev указывают на следующий и предыдущий элементы списка. При этом если предыдущего или следующего элемента списка не существует, указатель должен быть равен NULL.
Описание структуры данных в файле list.h
Вам необходимо реализовать некоторые функции в файле ./list.c
и пройти тесты (описанные в ./list_test.c).
- Необходимо реализовать следующие функции(короткое описание функций можно
подсмотреть в
list.h):
list_clear
list_push_front
list_len
Эти функции проверяет тест test_list_stage1
list_push_back
list_get
list_insert
list_pop_front
list_pop_back
list_remove
Эту функцию проверяет тест test_list_remove
list_reverse
Эту функцию проверяет тест test_list_reverse
Дополнительная информация
- Команда для сборки проекта -- make
- Команда для запуска тестов -- make test
Для работы вам могут понадобится следующие библиотечные функции:
malloc(size_t size)-- функция, динамически выделяющая size байт и возвращающая указатель на выделенный кусокrealloc(void *ptr, size_t size)-- функция изменяющая размер выделенного куска памяти на вход принимает указатель на предыдущий выделенный кусок. возвращает укзаатель на заново выделенную память. Все предыдущие данные в ptr остаются без изменений
Description
Languages
C
98.1%
Makefile
1.1%
Meson
0.8%