- •Аннотация к курсовой работе
- •Содержание
- •Введение
- •Постановка задачи
- •Анализ предметной области
- •Стековая память
- •Описание диалога
- •Описание процедур и функций
- •Описание организации структур данных
- •Описание алгоритма
- •Формальное описание входных и выходных данных
- •Результаты
- •Заключение
- •Список литературы
Описание организации структур данных
Для реализации стека, очереди и дека созданы структуры steck,qucue и дек имеющие следующие поля.
В стеке:
поле а – информационное поле;
поле pred – поле указатель на предыдущий элемент.
В очереди:
поле а – информационное поле;
поле next – поле указатель на следующий элемент.
В деке:
поле а – информационное поле;
поле pred – поле указатель на предыдущий элемент;
поле next – поле указатель на следующий элемент.
Структура р является текущим элементом. Структура top головным элементом.
Описание алгоритма
Создание стека:
Создаем головной элемент;
Создаем текущий элемент поле указатель, которого указывает на головной элемент;
Текущий элемент становится головным.
Добавление элемента в начало:
Осуществляем переход в начало стека;
Поле указатель первого элемента заносим адрес добавляемого элемента;
Добавление элемента в конец:
Поле указатель добавляемого элемента заносим адрес головы стека.
Добавление элемента середину:
Осуществляем переход в середину;
Поле указатель добавляемого элемента заносим адрес первого элемента;
Поле указатель третьего элемента заносим адрес добавляемого элемента.
Удаление первого элемента:
Переходим в начало стека;
Поле указатель второго элемента заносим 0;
Удаляем элемент.
Удаление последнего элемента:
Предыдущий элемент становится головным;
Удаляем элемент.
Удаление элемента из середины:
Осуществляем, переходим в середину;
Поле указатель следующего элемента заносим адрес, хранящийся в поле указателя удаляемого элемента;
Удаляем элемент.
Формальное описание входных и выходных данных
Входными данными являются:
Размер стека;
Элементы стека;
Добавляемый элемент;
Удаляемый элемент.
Выходными данными являются:
Содержимое стека.
Аналогично для очереди и дека.
Описание диалога
При запуске программы создается стек и появляется окно, в которой перечислены операции над стеком. (Рис.1)
Потом выбираем нужный нам пункт к примеру, я выбрал 1 и нажимаем Enter. И сразу внизу появляется запись «введите элемент» водим элемент который мы хотим занести в стек. (рис.2)
Выбираем 2 пункт «Удалить элемент». Рис.3
Выбираем 4 пункт «Поиск элемента в стеке». Если веденный пользователем элемент присутствует в стеке, выводится сообщение о нахождении. Рис.4
Аналогично для очереди и дека.
Описание процедур и функций
В программе были использованы функции, хранящиеся в заголовочных файлах. Список заголовочных файлов из стандартной библиотеки C++, используемых в программе (в описании приведены функции, использующиеся в данной программе):
iostream – в ней реализована поддержка для файлового ввода/вывода данных встроенных типов. Операции ввода/вывода выполняются с помощью классов istream (потоковый ввод) и ostream (потоковый вывод). Третий класс, iostream, является производным от них и поддерживает двунаправленный ввод/вывод.
Так же были написаны собственные функции для реализации алгоритмов сжатия:
void vivod() – вывод стека;
void addToTop() – добавление элемента в начало;
void addToPos() – добавление элемента в указанную позицию;
void delet() – удаление элемента;
void poisk() – поиск элемента в стеке.
