forked from 131/lab6_list
обновил readme
This commit is contained in:
52
README.md
Normal file
52
README.md
Normal file
@@ -0,0 +1,52 @@
|
||||
# Базовые структуры данных. Список
|
||||
|
||||
* Склонировать репозиторий https://timp.pw/121/lab6_list.git
|
||||
|
||||
В этом задании необходимо дописать функции для работы с двусвязным списком.
|
||||
Двусвязный список -- структура данных, которая имеет вид
|
||||
|
||||
```c
|
||||
struct list_node {
|
||||
struct list_node *next;
|
||||
struct list_node *prev;
|
||||
}
|
||||
```
|
||||
Где поля **next** и **prev** указывают на следующий и предыдущий элементы списка.
|
||||
При этом если предыдущего или следующего элемента списка не существует, указатель должен быть равен **NULL**
|
||||
|
||||
Описание структуры данных в файле 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 остаются без изменений
|
||||
Reference in New Issue
Block a user