1
0
forked from 131/lab6_list
2023-04-22 02:26:34 +03:00
2022-04-23 01:35:06 +03:00
2022-04-23 01:35:06 +03:00
2022-04-23 01:35:06 +03:00
2022-04-23 01:35:06 +03:00
2022-04-23 01:35:06 +03:00
2022-04-23 01:35:06 +03:00
2022-04-23 01:35:06 +03:00
2022-04-23 01:35:06 +03:00
2022-04-23 01:35:06 +03:00

Базовые структуры данных. Список

  • Склонировать репозиторий 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
No description provided
Readme 72 KiB
Languages
C 98.1%
Makefile 1.1%
Meson 0.8%