Лабораторная 3. Стеки, очереди, деки

  1. Разработать модуль s_q.c для поддержки стеков и очередей вещественных значений. Необходимые функции приведены ниже. Параметры функций и возвращаемый результат определяются студентом самостоятельно на основе требований для стеков, очередей и деков:
    1. Поддержка стеков на базе статических массивов
     sm_push  // размещает элемент на вершине стека
     sm_pop   // изымает элемент с вершины стека
     sm_empty // возвращает 1, если стек пуст, иначе - 0
     sm_full  // возвращает 1, если стек полность заполнен, иначе - 0
     
    2. Поддержка стеков на базе односвязных списков (см. предыдущие ЛР)
     sl_push  // размещает элемент на вершине стека
     sl_pop   // изымает элемент с вершины стека
     sl_empty // возвращает 1, если стек пуст, иначе - 0
    
    3. Поддержка очередей на базе статических массивов с кольцевой организацией
     qm_put   // размещет элемент в конце очереди
     qm_get   // изымает элемент из начала очереди
     qm_empty // возвращает 1, если очередь пуста, иначе - 0
     qm_full  // возвращает 1, если очередь полностью заполнена, иначе - 0
    
    4. Поддержка очередей на базе двусвязных кольцевых списков (см. предыдущие ЛР)
     ql_put   // размещет элемент в конце очереди
     ql_get   // изымает элемент из начала очереди
     ql_empty // возвращает 1, если очередь пуста, иначе - 0
    
  2. Создать программу/набор программ для проверки работоспособности всех функций модуля.