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

Реализовать модуль работы с двусвязными списками.

Взять структуру и набор функций из задачи «Связанные списки», изменив интерфейс с учетом большей симметричности двусвязного списка (пара функций изменят семантику, пару функций можно добавить — подумайте, какие именно).

Функциям дать префикс dlist: dlist_length(), dlist_free() и т.д.

Тесты на все функции с помощью assert.