Skip to content
Aleksandr Dubinin edited this page Jun 18, 2017 · 1 revision

Описание программы

Файл 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 (предыдущий элемент очереди).

Тестовый набор данных

002

Clone this wiki locally