ВНИМАНИЕДля заказа программы своего варианта пишите на наш электронный адрес proglabs@mail.ru

Постановка задания

Задание для всех вариантов звучит так (или, возможно, немного изменено, так как могут быть разные издания учебного пособия):

Необходимо написать $3$ модуля, в совокупности содержащие решения $10$ задач для работы со стеками, очередями, деками, и программу, демонстрирующую работу этих модулей. Программа должна быть выполнена либо в качестве консольного приложения (тогда обязателен командно-текстовый интерфейс), либо иметь графический интерфейс пользователя.

Все задачи выполнять через функции, при необходимости можно использовать вспомогательные функции. В разработанных модулях не должны применяться интерфейсные функции, весь интерфейс реализуется демонстрационной программой.

В качестве данных, если не сказано иначе, брать последовательность случайных целых чисел (положительных и отрицательных). Желательно также предусмотреть ввод элементов списка с клавиатуры.

💡 Для студентов мы бесплатно закодировали модуль работы со стеком и программу, демонстрирующую работу этого модуля. Разработка велась в среде MS Visual Studio в виде консольного приложения с помощью языка программирования C++.

 

 

Общие сведения о стеке

Стек (stack) — динамическая структура данных, в которой все включения, исключения и доступ производятся только с одного конца по принципу LIFO (от англ. «Last In — First Out» — последним пришел, первым ушел).

Стеки широко применяются в программировании для: передачи параметров в функции, трансляции, реализации рекурсии, реализации управления динамической памятью и др. Принцип работы стека легко понять на примере стопки тарелок: чтобы взять вторую тарелку сверху, нужно снять самую верхнюю.

Список задач по моделированию стека:

  • Добавление элемента в стек. Функция получает в качестве аргументов указатель на начало стека и добавляемый элемент, возвращает новое начало стека.
  • Извлечение элемента из стека. Функция получает указатель на начало стека, возвращает извлекаемое число.
  • Реверсирование (переворачивание) стека. Элементы извлекаются из стека и добавляются в новый до тех пор, пока исходный стек не окажется пустым. Далее необходимо перенаправить указатель со старого стека на новый. Для извлечения и добавления использовать подготовленные ранее функции. Пользоваться связями линейного списка, на базе которого построен стек, запрещается.
  • Печать стека через двойное реверсирование. Реверсирование производится дважды: первый раз так же, как описано выше (лучше просто вызвать соответствующую функцию), второй раз добавляется печать извлеченного значения.

Структура проекта

В результате кодирования данной задачи получился проект, состоящий из $3$ файлов:

  • stack.h — пользовательские описания (типы данных и прототипы функций).
  • stack.cpp — модуль для работы со стеком.
  • source.cpp — программа, демонстрирующая работу модуля stack.cpp.

Реализация задачи на языке С++

Результаты работы программы

Смысл операции и результат
1САФУ. Практикум на С++ (Латухина). Лабораторная работа №2 (стеки, деки, очереди). Попытка печати всех элементов стека (на начальный момент стек пуст).Попытка печати всех элементов стека (на начальный момент стек пуст).
2САФУ. Практикум на С++ (Латухина). Лабораторная работа №2 (стеки, деки, очереди). Добавление в вершину стека элемента со значением 5Добавление в вершину стека элемента со значением $5$.
3САФУ. Практикум на С++ (Латухина). Лабораторная работа №2 (стеки, деки, очереди). Добавляем в вершину стека последовательно элементы со значениями 4, 3, 2 и 1.Добавляем в вершину стека последовательно элементы со значениями $4$, $3$, $2$ и $1$.
4САФУ. Практикум на С++ (Латухина). Лабораторная работа №2 (стеки, деки, очереди). Попробуем удалить из стека верхний элемент.Попробуем удалить из стека верхний элемент.
5САФУ. Практикум на С++ (Латухина). Лабораторная работа №2 (стеки, деки, очереди). Добавим в начало стека элемент со значением −55Добавим в начало стека элемент со значением $-55$.
6САФУ. Практикум на С++ (Латухина). Лабораторная работа №2 (стеки, деки, очереди). Произведем реверсировку стека, т е перевернем элементы стека.Произведем реверсировку стека, т е перевернем элементы стека.
7САФУ. Практикум на С++ (Латухина). Лабораторная работа №2 (стеки, деки, очереди). Попробуем удалить из стека верхний элемент.Попробуем удалить из стека верхний элемент.
8САФУ. Практикум на С++ (Латухина). Лабораторная работа №2 (стеки, деки, очереди). Произведем реверсировку стека, т е перевернем элементы стека.Произведем реверсировку стека, то есть перевернем элементы стека.
9САФУ. Практикум на С++ (Латухина). Лабораторная работа №2 (стеки, деки, очереди). Произведем очистку стека, т е удалим из стека все элементы.Произведем очистку стека, т е удалим из стека все элементы.
10САФУ. Практикум на С++ (Латухина). Лабораторная работа №2 (стеки, деки, очереди). Попытка печати всех элементов стека (на данный момент стек пуст).Попытка печати всех элементов стека (на данный момент стек пуст).
11САФУ. Практикум на С++ (Латухина). Лабораторная работа №2 (стеки, деки, очереди). Завершим работу с программой.Завершим работу с программой.

Стоимость заказа работы

Структура данныхКонсольный форматВизуальный формат
1СтекБесплатно (см. реализацию выше)$800$ рублей
2Очередь$600$ рублей$800$ рублей
3Дек$600$ рублей$800$ рублей

➡ Стоимость детального алгоритма из любого варианта составляет $1\ 000$ рублей (заказывается опционально на ваше усмотрение, чтобы детально разобраться с решением лабораторной работы, например, не прибегая к консультации репетитора).

Также дополнительно вы можете заказать у нас:

  • Построение аккуратной ГОСТовой блок-схемы. Ориентировочная стоимость $1\ 000$ рублей.
  • Отчет о проделанной работе (иногда в вузах есть требование — предоставить отчет к лабораторной работе). Ориентировочная стоимость $500$ рублей.
ВНИМАНИЕДля заказа программы своего варианта пишите на наш электронный адрес proglabs@mail.ru