Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LR-POP.doc
Скачиваний:
49
Добавлен:
12.02.2016
Размер:
419.84 Кб
Скачать

Лабораторна робота № 9

Тема роботи: Динамічні списки

Мета роботи: закріпити теоретичні знання про організацію та зас­тосу­вання динамічних списків різної конфігурації; оволодіти практичними прийомами створення й опрацювання однозв’язних та двозв’язних списків.

Завдання лабораторної роботи

  1. З умови індивідуального завдання визначити, які дані будуть вводитися і опрацьовуватися в задачі. Як і в попередній лабораторній роботі, треба розробити два варіанти програми (або один з можливістю альтерна­тивного вибору), що відрізнятимуться способом введення даних. У першому варіанті, який буде пробним, введення даних має здійснюватися з клавіатури. Другий варіант програми має бути демон­стра­ційним, а дані повинні зчитуватися з попередньо підготованого файла. Формуючи цей файл (або файли), треба так підібрати вхідні дані, щоб якнайповніше продемон­струвати функ­ціо­нальні можливості та правильність роботи програми.

  2. Розробити алгоритм реалізації задачі з індивідуального завдання. Для переважної більшості задач він має складатися з таких основних кроків:

  1. зі заданих вхідних даних сформувати у динамічній пам’яті список вказаної конфігурації;

  2. надрукувати створений список;

  3. виконати над елементами списку перетворення, вказані в індиві­дуальному завданні;

  4. надрукувати змінений список (або отримані списки);

  5. звільнити всю зайняту динамічну пам’ять.

Залежно від умови конкретної задачі, в алгоритмі розв’язування можуть бути ті чи інші зміни й доповнення.

  1. Програмна реалізація алгоритму повинна містити вказану в завданні функцію. Крім цього треба розробити власні функції для виконання основних операцій над елементами списку, наприклад: доповнення списку новим елементом, роздруку даних зі списку, пошуку і/або вилучення заданого елемента, виконання необхідних обчислень або перетворень над елементами списку, витирання всього списку та інші.

  2. У процесі формування списку треба по одному вводити вхідні дані у виділене для них місце в динамічній пам’яті, формувати з них елементи списку та встановлювати зв’язки між елементами з урахуванням конфігурації списку: одно- чи двозв’язний список, стек, черга чи кільцевий список, впоряд­кований чи невпорядкований список тощо.

  3. Якщо в завданні зазначено, що дані мають зберігатися у динамічній пам’яті окремо, то для таких даних слід виділяти відповідну за розміром ділянку пам’яті, а в елементі списку зберігати тільки адресу цієї ділянки. Відокремлене збереження даних можна застосувати в кожному із завдань, де це доцільно.

  4. У процесах доповнення списку новими елемен­тами, вилучення окремих елементів чи переставляння елементів місцями треба обов’язково звертати особливу увагу на коректне перемикання зв’язків, щоб не допустити випадкового розірвання списку.

  5. Якщо завдання вимагає перенесення елементів (даних) у новий список, то недоцільно виділяти для таких елементів (даних) нові ділянки динамічної пам’яті. Найкраще вилучити такі елементи зі старого списку, не витираючи їх з пам’яті, а потім під’єднати відокремлені елементи (дані) у відповідному місці до нового списку.

  6. Наприкінці роботи програми треба обов’язково витерти всі створені списки, звільнивши повністю зайняту динамічну пам’ять. Якщо дані списку зберігаються у пам’яті окремо, то треба спочатку звільнити пам’ять, зайняту даними, а вже потім витирати елемент списку, де ці дані були зареєстровані.

  7. Оформити звіт до лабораторної роботи згідно з вимогами.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]