Описание
Двусторонняя очередь через двусвязный список.
struct node
{
int data;
struct node *next, *prev;
};
struct deque
{
struct node *front, *back;
};
Нужны функции
typedef struct deque qeque;
deque *deque_init ();
void deque_free (deque *d);
deque *deque_copy ();
int deque_push_front (deque *d, double data);
int deque_push_back (deque *d, double data);
int deque_pop_back (deque *d, int *data);
int deque_pop_front (deque *d, int *data);
int deque_is_empty (deque *d);
Снабдить интерфейсом.
* Программа ведет несколько очередей, идентифицируемых по номеру
* Есть возможность по команде
- Создания новой пустой очереди
- Создание новой очереди как копии предыдущей
- Операции с выбранной очередью (добавление/удаление в начало/в конец)
- Вывод очереди/всех очередей на экран
Сдавать через git/с проверкой valgrind.