/
Stasukevich
/
course_prog4linux
Обзор
Документация
Войти
/
Stasukevich
/
course_prog4linux
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
p14/deque.h
72 строки
2 KB
Stasukevich
new file: p11/.vscode/launch.json
15 июн 2026, 00:34
15 июн 2026, 00:34
c630964
Код
Авторство
О чём код?
#ifndef DEQUE_H #define DEQUE_H #include <stdbool.h> #define MAX_STRING_LEN 32 // Тип данных для элемента дека typedef char DequeItem[MAX_STRING_LEN]; // Структура узла дека (двусвязный список) typedef struct DequeNode { DequeItem data; struct DequeNode* prev; struct DequeNode* next; } DequeNode; // Структура дека typedef struct { DequeNode* head; // Указатель на первый элемент DequeNode* tail; // Указатель на последний элемент int size; // Количество элементов } Deque; // ============== Базовые операции ============== // Создание новой дека Deque* deque_create(void); // Уничтожение дека и освобождение памяти void deque_destroy(Deque* d); // Очистка дека (удаление всех элементов) void deque_clear(Deque* d); // Проверка, пуста ли дека bool deque_is_empty(const Deque* d); // Получение количества элементов int deque_size(const Deque* d); // ============== Операции с началом дека ============== // Добавление элемента в начало bool deque_push_front(Deque* d, const char* value); // Удаление элемента из начала bool deque_pop_front(Deque* d, char* result); // Просмотр первого элемента без удаления bool deque_peek_front(const Deque* d, char* result); // ============== Операции с концом дека ============== // Добавление элемента в конец bool deque_push_back(Deque* d, const char* value); // Удаление элемента из конца bool deque_pop_back(Deque* d, char* result); // Просмотр последнего элемента без удаления bool deque_peek_back(const Deque* d, char* result); // ============== Дополнительные операции ============== // Печать всех элементов дека (для отладки) void deque_print(const Deque* d); // Получение элемента по индексу (0-based) bool deque_get(const Deque* d, int index, char* result); #endif // DEQUE_H