Завдання#

Узагальнене формулювання завдання до лабораторної роботи#

Відповідно до індивідуального завдання потрібно створити програму для обслуговування однозв’язного списку, розміщеного в динамічній пам’яті.

Завдання складається з двох частин:

  • операції для роботи зі списком, який складається з найпростіших елементів;

  • операції для роботи зі списком, елементами якого є шаблони структур із відповідного варіанту для Лабораторної роботи №5.

Програма повинна задовольняти такі вимоги:

  1. Указані в завданні дії має бути оформлено як окремі функції.

  2. Пам’ять під черговий елемент динамічної структури даних потрібно виділяти динамічно.

  3. Виконання дій з обслуговування динамічної структури даних повинно виконуватися в режимі діалогу з користувачем.

  4. Уведення структур можна реалізувати одним із таких механізмів:

    • уведення заздалегідь вибраної кількості структур (не менше за 5);

    • уведення до появи заданої ознаки закінчення уведення структур;

    • діалог із користувачем про потребу продовжувати уведення.

Постановка першого завдання#

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

Для зручності роботи і правильного пересування по списку рекомендується працювати з трьома вказівниками:

  • head — вказівник на голову списку;

  • current — вказівник на поточний елемент списку;

  • tail — вказівник на останній елемент списку.

Постановка другого завдання#

Для кожного варіанту потрібно взяти шаблон структури із варіанту для Лабораторної роботи №5 з відповідним номером.

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

Для кожного з варіантів завдання потрібно розробити такі функції:

  • створення списку;

  • додавання елемента в список:

    • у початок списку;

    • у кінець списку;

    • після елемента з заданим номером;

    • після елемента з заданим ключем;

  • видалення елемента зі списку:

    • з початку списку;

    • з кінця списку;

    • із заданим номером;

    • із заданим ключем;

  • виведення вмісту списку на екран;

  • упорядкування елементів списку за вибраною ознакою.

Виведення вмісту списку (за відповідним пунктом меню) потрібно виконати у вигляді таблиці, стовпці якої відповідають полям шаблону варіанту структури, а рядки — вмісту кожного екземпляра структури зі сформованого списку. Поля під час виведення повинно бути відформатовано за допомогою табуляції.

Варіанти завдань до лабораторної роботи#

Операції для роботи зі списком, який складається із найпростіших елементів#

  1. Створити однонаправлений список, що складається з n цілих чисел. Вилучити з першого списку і перемістити в другій список все від’ємні числа.

  2. Створити однонаправлений список, що складається з n цілих чисел. Видалити зі списку всі елементи, що знаходяться між його максимальним і мінімальним елементами.

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

  4. Створити однонаправлений список, що складається з n цілих чисел. Перетворити його в два списки: перший список повинен містити тільки парні числа, другий - непарні.

  5. Створити однонаправлений список, що складається з n дійсних чисел. Розташувати елементи списку в зворотному порядку.

  6. Створити два однонаправлених списка, що складаються з n цілих чисел, впорядкованих за зростанням. Перемістити всі дані в третій список, видаляючи повторювані значення.

  7. Створити два однонаправлених списка, що складаються з n цілих чисел впорядкованих за зростанням. Перемістити в третій список елементи зі значеннями, які зустрічаються і в першому і в другому списках.

  8. Створити однонаправлений список, що складається з n цілих чисел. Від’ємні елементи видалити, а парні перенести в другий список.

  9. Створити однонаправлений список, що складається з n символів латинського алфавіту і символів арифметичних операцій. Перемістити символи арифметичних операцій в другий список.

  10. Створити два однонаправлених списка, що складаються з n символів латинського алфавіту. Перемістити всі дані в третій список таким чином, щоб спочатку йшли всі рядкові символи з обох списків, а потім - прописні.

  11. Створити однонаправлений список, що складається з n цілих чисел. Перемістити в другій список елементи, значення яких більше середнього значення елементів першого списку.

  12. Створити однонаправлений список, що складається з n символів латинського алфавіту. Видалити зі списку елементи з повторюваними більш ніж один раз значеннями.

  13. Створити два однонаправлених списку, що складаються з n цілих чисел, впорядкованих за зростанням. Перетворити їх в третій список, який буде впорядкований по спадаючій.

  14. Створити однонаправлений список, що складається з n символів латинського алфавіту. Перетворити його в два списки: перший список повинен містити прописні символи, другий - рядкові.

  15. Створити однонаправлений список, що складається з n цілих чисел. Вставити нові елементи в початок, кінець і після зазначеного елементу списку.

  16. Створити два однонаправлених списка, що складаються з n цілих чисел. Перевірити на рівність двох списків і визначити, чи входить перший список у другий.

  17. Створити однонаправлений список, що складається з n цілих чисел. Вставити в список новий елемент за кожним входженням зазначеного (уведеного) елементу списку.

  18. Створити два однонаправлених списка, що складаються з n цілих чисел. Вставити в кінець першого списку всі елементи другого списку і перенести останній елемент в початок нового списку.

  19. Створити два однонаправлених списку, що складаються з n цілих чисел. Створити третій список, включивши в нього по одному разу елементи, які входять одночасно в обидва списки.

  20. Створити два однонаправлених списка, що складаються з n цілих чисел. Створити третій список, включивши в нього по одному разу елементи, які входять в один зі списків, але в той же час не входять в інший.

  21. Створити два однонаправлених списка, що складаються з n цілих чисел, впорядкованих за неспаданням. Об’єднати в один упорядкований по неспаданню список.

  22. Створити однонаправлений список, що складається з додатних і від’ємних чисел типу float. Вставити після кожного від’ємного числа елемент зі значенням 0.

  23. Створити однонаправлений список, що складається з n цілих чисел. Видалити з нього елемент із заданим номером, додати К елементів, починаючи з заданого номера.

  24. Створити однонаправлений список, що складається з n цілих чисел. Видалити з нього К елементів, починаючи з заданого номера, додати ці К елементів піля іншого заданого номера.

  25. Створити однонаправлений список, що складається з n цілих чисел. Видалити зі списку всі елементи з парними номерами (2, 4, 6 і. т. д.), записавши їх в новий список.

  26. Створити однонаправлений список, що складається з n цілих чисел. Всі елементи, що повторюються подвоїти. Визначити розмір списку.

  27. Створити три однонаправлених списка. Знайти входження другого списку в перший і замінити на третій.

  28. Створити однонаправлений список, що складається з n цілих чисел. Видалити з нього елемент, який знаходиться за кожним входженням заданого елементу списку (якщо такий є).

  29. Створити однонаправлений список, що складається з n цілих чисел. Знайти суму останнього і передостаннього елементів списку і зробити цю суму першим елементом списку.

  30. Створити однонаправлений список, що складається з n цілих чисел. Перевернути список, тобто змінити вказівники на наступний елемент у цьому списку так, щоб його елементи виявилися розташованими в зворотному порядку.

Операції для роботи зі списком, елементами якого є шаблони структур із відповідного варіанту для Лабораторної роботи №5#

Див. варіанти структур в Лабораторній роботі №5