14. | Данные о безработных на бирже. Структура: ФИО, год рождения, пол, профессия | Шелла | Список возможных кандидатов на работу. На работу берут мужчин не старше 40 лет. |
15. | Справочник об ЭВМ на оптовом складе. Структура: Марка, год выпуска, тип процессора, объем ОЗУ и винчестера | Нерекурсивный алгоритм быстрой сортировки | Список ЭВМ выпущенных после 2003 года. |
16. | Телефонный справочник. Структура: ФИО, адрес, номер телефона, обслуживающая АТС | Рекурсивный алгоритм быстрой сортировки | Список подключенных к данной АТС. |
17. | Список участников научной конференции: ФИО, из какой страны, форма участия (доклад, сообщение, гость) | Прямые вставки | Из какой страны прибыло наибольшее количество участников. |
18. | Библиотечный каталог. Структура: ФИО читателя, шифр взятой книги, дата возврата | Шелла | ФИО читателей не вернувших книги в срок (2 недели) |
19. | Протокол соревнований: ФИО, страна проживания, вид спорта, очки | Простой выбор | Какие спортсмены прибыли из заданной страны. |
20. | Данные о международной конференции: ФИО участника, научный ранг, форма участия (доклад, сообщение, гость), страна, которую он представляет. | Нерекурсивный алгоритм быстрой сортировки | Список стран участниц по мере убывания количества докладов. |
21. | Данные о безработных на бирже труда: ФИО, год рождения, профессия, на какую работу согласен (по специальности / на любую). Данные о возможности представляемой работы – профессия, возраст. | Рекурсивный алгоритм быстрой сортировки | Список трудоустроенных |
22. | Информация за месяц по состоянию дел на валютной бирже: вид валюты, предложение, спрос, цена в рублях на вчерашних торгах, цена в рублях сегодня. | Шелла | Список по дням месяца, когда спрос превышал предложение. |
23. | Информационный справочник преподавателей. Структура: ФИО, стаж работы, массив публикаций за последние пять лет. Элементы массива: вид публикации (статья, руководство, учебник), печатный / рукописный, количество печатных листов, год публикации). | Простой выбор | Фамилии преподавателей имеющих более 3х публикаций. |
Лабораторная работа №7
Абстрактные типы данных (АТД): список, стек, очередь.
Реализация АТД на базе линейного однонаправленного списка.
Цель работы
Целью работы является получение навыков организации данных и их обработки в динамической памяти.
Требования к разрабатываемой программе:
Все операции для работы со списком, очередью и стеком должны быть реализованы в отдельно скомпилированных модулях (одноименное_название.tpu).
Для удобства работы в программе должно быть реализовано меню с выпадающим подменю. В меню пользователю должен предоставляться выбор структуры данных, в подменю – выбор операций для работы с выбранной структурой данных.
В качестве базовой динамической структуры должен рассматриваться линейный однонаправленный список.
Требования к функциональному составу - выполнение программы должно демонстрировать выполнение операций, приведенных в таблице 3.
Таблица 3
Структура данных | Операции |
Линейный однонаправленный список | Проверка списка (пуст / не пуст); Формирование списка · Упорядоченного · Неупорядоченного Поиск элемента списка (есть или нет в списке) Добавить элемент в список· В начало списка · В конец списка · До элемента с определенным значением информационного поля · После элемента с определенным значением информационного поля Удалить· Первый элемент списка · Последний элемент списка · Элемент с определенным значением информационного поля · весь список Взять элемент списка (просмотреть значение и удалить)· Первый элемент · Последний элемент · Элемент с определенным значением информационного поля Просмотр элемента списка1. Первого элемента списка 2. Последнего элемента списка 3. Всего списка Индивидуальное задание |
Очередь на базе линейного однонаправленного списка | Проверка очереди (пуста / не пуста); Сформировать очередь Поиск элемента очереди (есть или нет в очереди) Добавить элемент в очередь Удалить · элемент очереди · всю очередь Взять (просмотреть значение и удалить)· элемент очереди · всю очередь Просмотр· Первого элемента очереди · Последнего элемента очереди · Всей очереди 8. Индивидуальное задание |
Стек на базе линейного однонаправленного списка | Основные операции, которые должны быть реализованы в программе: 1. Проверка стека на пустоту; 2. Формирование стека; 3. Поиск элемента в стеке (есть или нет); 4. Добавить элемент в стек; 5. Взять (просмотреть значение и удалить) · Элемент из стека; · Весь стек 6. Удалить · Элемент из стека; · Весь стек 7. Просмотреть значение · Вершины стека · Содержимое стека 8. Индивидуальное задание |
Требования к отчету: Внешние спецификации (этап постановки задачи) разрабатываются для программы в целом. Внутренние спецификации программы (этап проектирования) разрабатываются для каждого модуля отдельно и для программы в целом.
Не забывайте освобождать память. Первым оператором подпрограммы, организующей работу программы вцелом, должен быть вызов процедуры Mark(p), а Release(p) – последним, где р - переменная типа Pointer. Проследить правильность выделения и высвобождения памяти можно, используя стандартные функции MaxAvail, MemAvail.
Набор тестовых заданий приведен в таблице 4.
Таблица 4
№ теста | Операция для работы со списком | Значения входных данных | Просмотр содержимого списка после выполнения операции | |||||||||||||||
1. | Создать упорядоченный список, вводя элементы со значением | 9 |
| |||||||||||||||
2. | 5 | |||||||||||||||||
3. | 1 | |||||||||||||||||
4. | Добавить в начало списка элемент со значением | -1 |
| |||||||||||||||
5. | Добавить в конец списка элемент со значением | 13 |
| |||||||||||||||
6. | Добавить элемент со значением х до элемента списка со значением info | x | info |
| ||||||||||||||
7. | -3 | -1 | ||||||||||||||||
8. | 0 | 1 | ||||||||||||||||
9. | 3 | 5 | ||||||||||||||||
10. | 7 | 9 | ||||||||||||||||
11. | 11 | 13 | ||||||||||||||||
12. | Добавить элемент со значением х после элемента списка со значением info | x | info |
| ||||||||||||||
13. | -2 | -3 | ||||||||||||||||
14. | 2 | 1 | ||||||||||||||||
15. | 4 | 3 | ||||||||||||||||
16. | 14 | 13 | ||||||||||||||||
17. | Найти элемент в списке со значением | -3 | Элемент найден | |||||||||||||||
18. | 14 | |||||||||||||||||
19. | 0 | |||||||||||||||||
20. | 24 | Такого элемента в списке нет | ||||||||||||||||
21. | Удалить элемент списка со значением | -3 |
| |||||||||||||||
22. | 13 |
| ||||||||||||||||
23. | Удалить голову списка |
|
| |||||||||||||||
24. | Удалить последний элемент списка |
|
| |||||||||||||||
25. | Удалить голову списка |
|
| |||||||||||||||
26. | Удалить последний элемент списка |
|
| |||||||||||||||
27. |
|
|
||||||||||||||||
|
| |||||||||||||||||
29. |
|
| ||||||||||||||||
30. |
|
| ||||||||||||||||
31. |
|
| ||||||||||||||||
32. |
|
| ||||||||||||||||
33. |
|
| ||||||||||||||||
34. |
| Операция невыполнима. Список пуст |
Варианты индивидуального задания
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 |



