1
0
forked from 131/lab6_list
Files
lab6_list/README.md

56 lines
2.5 KiB
Markdown
Raw Permalink Normal View History

2023-04-22 02:19:28 +03:00
# Базовые структуры данных. Список
2022-04-23 01:35:06 +03:00
2023-04-22 02:19:28 +03:00
* Склонировать репозиторий https://timp.pw/121/lab6_list.git
2022-04-23 01:35:06 +03:00
В этом задании необходимо дописать функции для работы с двусвязным списком.
Двусвязный список -- структура данных, которая имеет вид:
2022-04-23 01:35:06 +03:00
2023-04-22 02:19:28 +03:00
```c
struct list_node {
struct list_node *next;
struct list_node *prev;
}
```
Где поля **next** и **prev** указывают на следующий и предыдущий элементы списка.
При этом если предыдущего или следующего элемента списка не существует, указатель должен быть равен **NULL**.
2023-04-22 02:19:28 +03:00
Описание структуры данных в файле `list.h`
2022-04-23 01:35:06 +03:00
Вам необходимо реализовать некоторые функции в файле `./list.c`
и пройти тесты (описанные в `./list_test.c`).
2022-04-23 01:35:06 +03:00
* Необходимо реализовать следующие функции(короткое описание функций можно
подсмотреть в `list.h`):
2022-04-23 01:35:06 +03:00
```
2022-04-23 01:35:06 +03:00
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
```
## Дополнительная информация
2022-04-23 01:35:06 +03:00
* Команда для сборки проекта -- **make**
* Команда для запуска тестов -- **make test**
2022-04-23 01:35:06 +03:00
Для работы вам могут понадобится следующие библиотечные функции:
* `malloc(size_t size)` -- функция, динамически выделяющая size байт и возвращающая
2022-04-23 01:35:06 +03:00
указатель на выделенный кусок
* `realloc(void *ptr, size_t size)` -- функция изменяющая размер выделенного куска памяти
2022-04-23 01:35:06 +03:00
на вход принимает указатель на предыдущий выделенный кусок.
возвращает укзаатель на заново выделенную память.
Все предыдущие данные в ptr остаются без изменений