Skip to content

Latest commit

 

History

History
35 lines (25 loc) · 2.9 KB

README.md

File metadata and controls

35 lines (25 loc) · 2.9 KB

siaod_2

Вариант 8. Используя очередь, решить следующую задачу. За один просмотр файла с данными и без использования дополнительных файлов напечатать элементы этого файла в следующем порядке:

*Сначала – все числа, меньшие A, 
*Затем – все числа из отрезка [A, B], 
*И наконец – все остальные числа.

A и B – вводятся с клавиатуры (A < B). Для реализации АТД Очередь использовать динамическое распределение памяти.

image

Алгоритм решения задачи

 1.	Считать границы А и В для корректного ввода данных в очередь;
 2.	Считать число из файла
 3.	Занести число в подочередь, в зависимости от введённого интервала, куда попадает число;
 4.	Записать в счётчик, какой по счёту элемент был занесён в очередь;
 5.	Перейти к пункту 2, пока все данные не закончатся;
 6.	Как только все данные занесены в подочереди, начать возвращать данные из очереди поочёрёдно;
 7.	Возвратить, согласно АТД «очередь» и индивидуальному заданию, сначала все числа, меньше заданного А, потом все числа в промежутке от А до В, и зачем все числа, больше В.

Программная реализация Последовательность действий при программной реализации:

1. Задать класс с необходимыми полями для каждого элемента и статическими переменными для всей очереди в целом. 
2. Реализовать алгоритм решения поставленной задачи. 
3. Реализовать основные функции работы с очередью, реализованной на указателях (Конструктор – инициализация, EnQueue(), DeQueue())
4. Реализовать в главной функции корректное считывание данных из файла и вывод данных в консоль правильно занесённых согласно заданию элементов в очередь;