1. З умови індивідуального завдання визначити, які дані будуть вводитися і опрацьовуватися в задачі. Як і в попередній лабораторній роботі, треба розробити два варіанти програми (або один з можливістю альтернативного вибору), що відрізнятимуться способом введення даних. У першому варіанті, який буде пробним, введення даних має здійснюватися з клавіатури. Другий варіант програми має бути демонстраційним, а дані повинні зчитуватися з попередньо підготованого файла. Формуючи цей файл (або файли), треба так підібрати вхідні дані, щоб якнайповніше продемонструвати функціональні можливості та правильність роботи програми.
2. Розробити алгоритм реалізації задачі з індивідуального завдання. Для переважної більшості задач він має складатися з таких основних кроків:
1) зі заданих вхідних даних сформувати у динамічній пам’яті список вказаної конфігурації;
2) надрукувати створений список;
3) виконати над елементами списку перетворення, вказані в індивідуальному завданні;
4) надрукувати змінений список (або отримані списки);
5) звільнити всю зайняту динамічну пам’ять.
Залежно від умови конкретної задачі, в алгоритмі розв’язування можуть бути ті чи інші зміни й доповнення.
3. Програмна реалізація алгоритму повинна містити вказану в завданні функцію. Крім цього треба розробити власні функції для виконання основних операцій над елементами списку, наприклад: доповнення списку новим елементом, роздруку даних зі списку, пошуку і/або вилучення заданого елемента, виконання необхідних обчислень або перетворень над елементами списку, витирання всього списку та інші.
4. У процесі формування списку треба по одному вводити вхідні дані у виділене для них місце в динамічній пам’яті, формувати з них елементи списку та встановлювати зв’язки між елементами з урахуванням конфігурації списку: одно- чи двозв’язний список, стек, черга чи кільцевий список, впорядкований чи невпорядкований список тощо.
5. Якщо в завданні зазначено, що дані мають зберігатися у динамічній пам’яті окремо, то для таких даних слід виділяти відповідну за розміром ділянку пам’яті, а в елементі списку зберігати тільки адресу цієї ділянки. Відокремлене збереження даних можна застосувати в кожному із завдань, де це доцільно.
6. У процесах доповнення списку новими елементами, вилучення окремих елементів чи переставляння елементів місцями треба обов’язково звертати особливу увагу на коректне перемикання зв’язків, щоб не допустити випадкового розірвання списку.
7. Якщо завдання вимагає перенесення елементів (даних) у новий список, то недоцільно виділяти для таких елементів (даних) нові ділянки динамічної пам’яті. Найкраще вилучити такі елементи зі старого списку, не витираючи їх з пам’яті, а потім під’єднати відокремлені елементи (дані) у відповідному місці до нового списку.
8. Наприкінці роботи програми треба обов’язково витерти всі створені списки, звільнивши повністю зайняту динамічну пам’ять. Якщо дані списку зберігаються у пам’яті окремо, то треба спочатку звільнити пам’ять, зайняту даними, а вже потім витирати елемент списку, де ці дані були зареєстровані.
9. Оформити звіт до лабораторної роботи згідно з вимогами.