typedef struct {
    matrix2d** data;
    int size;
    int capacity;
} tdQueue;

#define ERRALLOC do{ \
fputs("Ошибка выделения памяти\n", \
stderr); exit(EXIT_FAILURE); } while(0)

tdQueue* queue_create(void);
void queue_decontruct(tdQueue* queue);
bool queue_is_empty(tdQueue* queue);
int queue_size(tdQueue* queue);
void queue_enqueue(tdQueue* queue, matrix2d* data);
matrix2d* queue_dequeue(tdQueue* queue);
matrix2d* queue_peek(tdQueue* queue);
void queue_clear(tdQueue* queue);
