// заголовочный файл для поддержки стеков и очередей вещественных значений

#ifndef SQUNITL
#define SQUNITL
#include "listunit_l2c.h"


 // создает стек
 pnodeL2C LStack_create();
 // уничтожает стек
 void LStack_destroy(pnodeL2C stack);
 // помещает элемент на вершину стека
 double LStack_push(pnodeL2C stack, double data);
 // возвращает элемент с вершины стека
 double LStack_pop(pnodeL2C stack);
 // возвращает 1, если стек пустой, иначе - 0
 int LStack_empty(pnodeL2C stack);
 // возвращает 1, если стек полон, иначе - 0
 int LStack_full(pnodeL2C stack);
 // возвращает количество элементов в стеке
 int LStack_count(pnodeL2C stack);
 

 // создает очередь
 pnodeL2 LQueue_create();
 // уничтожает очередь
 void LQueue_destroy(pnodeL2C que);
 // помещает элемент в конец очереди
 double LQueue_push(pnodeL2C que, double data);
 double LQueue_put(pnodeL2C que, double data); // аналог push для очередей
 // возвращает элемент из начала очереди
 double LQueue_pop(pnodeL2C que);
 double LQueue_get(pnodeL2C que); // аналог pop для очередей

 // возвращает 1, если очередь пустая, иначе - 0
 int LQueue_empty(pnodeL2C que);
 // возвращает 1, если очередь полностью заполнена, иначе - 0
 int LQueue_full(pnodeL2C que);
 // возвращает количество элементов в очереди
 int LQueue_count(pnodeL2C que);

#endif // SQUNITL

