forked from 131/lab6_list
46 lines
2.1 KiB
Plaintext
46 lines
2.1 KiB
Plaintext
|
|
Базовые структуры данных. Список
|
|||
|
|
--------------------------------
|
|||
|
|
|
|||
|
|
* Склонировать репозиторий https://timp.pw/121/lab5_list.git
|
|||
|
|
(если репозиторий уже склонирован -- пропустить этот шаг ^_^)
|
|||
|
|
|
|||
|
|
В этом задании необходимо дописать функции для работы с двусвязным списком.
|
|||
|
|
Двусвязный список -- структура данных, которая имеет вид
|
|||
|
|
|
|||
|
|
Описание структуры данных в файле list.h
|
|||
|
|
|
|||
|
|
Вам необходимо реализовать некоторые функции в файле ./list.c
|
|||
|
|
и пройти тесты (описанные в ./list_test.c).
|
|||
|
|
|
|||
|
|
Команда для сборки проекта -- make
|
|||
|
|
Команда для запуска тестов -- make test
|
|||
|
|
|
|||
|
|
* Необходимо реализовать следующие функции(короткое описание функций можно
|
|||
|
|
подсмотреть в 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
|
|||
|
|
|
|||
|
|
|
|||
|
|
Для работы вам могут понадобится следующие библиотечные функции:
|
|||
|
|
|
|||
|
|
* malloc(size_t size) -- функция, динамически выделяющая size байт и возвращающая
|
|||
|
|
указатель на выделенный кусок
|
|||
|
|
* realloc(void *ptr, size_t size) -- функция изменяющая размер выделенного куска памяти
|
|||
|
|
на вход принимает указатель на предыдущий выделенный кусок.
|
|||
|
|
возвращает укзаатель на заново выделенную память.
|
|||
|
|
Все предыдущие данные в ptr остаются без изменений
|