-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Файл ipr2.c содержит исходный код программы с реализацией задания. Компиляция, сборка и запуск программы выполнены в среде разработки Code::Blocks 13.12 / GNU GCC Compiler в ОС ubuntu 14.04 LTS 32-bit.
В программе (функция main()) реализовано решение задачи со следующей функциональностью:
- вывод на экран объявленного и проинициализированного в исходном коде массива данных (переменная externalSrcData — массив элементов типа int), который можно получить из внешних источников (файл, БД и т. п.);
- формирование стека из элементов массива путем помещения их в вершину стека (переменная top типа stackPtr);
- вывод на экран элементов стека;
- выборка элементов из стека и формирование двунаправленной очереди (элементы из вершины стека top присоединяются к концу очереди — переменная rear типа queuePtr);
- вывод на экран элементов очереди (начало очереди — переменная front типа queuePtr).
В программе реализованы вспомогательные функции:
Функция hr() — осуществляет вывод на всю ширину окна горизонтальной полосы.
Функция pushIntoStack() — осуществляет помещение элементов в стек.
Функция popTop() — осуществляет выборку элементов из стека.
Функция pushIntoQueue() — осуществляет помещение элементов в очередь.
Функция popFront() — осуществляет выборку элементов из очереди.
В программе объявлены структуры с объявлениями новых имен типов данных stack и queue. Также объявлены новые имена типов данных: stackPtr и queuePtr.
Структура stack содержит следующие поля:
- data типа int — данные элемента стека;
- *next — указатель на структуру типа stack (следующий элемент стека).
Структура queue содержит следующие поля:
- data типа int — данные элемента двунаправленной очереди;
- *next — указатель на структуру типа queue (следующий элемент очереди);
- *prev — указатель на структуру типа queue (предыдущий элемент очереди).