Блок задач

3. Структуры данных

Темы
Сложность 3

Задача «Списки-палиндромы»

Реализовать функцию, проверяющую двусвязный список на палиндромность (палиндром одинаково читается как с начала, так и с конца).

int dlist_palindrome(DList *head, int (*cmp)(Pointer d1, Pointer d2));

Функция возвращает 1 (палиндром) или 0 (не палиндром).

Функция по указателю cmp сравнивает два элемента и возвращает 0, если они равны. Она используется для определения палиндромности. Например, для списка строк она будет реализована через strcmp.

Пустой список и список из 1 элемента являются палиндромами.

Протестировать реализацию с помощью assert для не менее двух различных функций сравнения.

Задача опирается на задачу «Двусвязные списки».