Завдання#
Узагальнене формулювання завдання до лабораторної роботи#
Відповідно до індивідуального завдання потрібно створити програму для обслуговування однозв’язного списку, розміщеного в динамічній пам’яті.
Завдання складається з двох частин:
операції для роботи зі списком, який складається з найпростіших елементів;
операції для роботи зі списком, елементами якого є шаблони структур із відповідного варіанту для Лабораторної роботи №5.
Програма повинна задовольняти такі вимоги:
Указані в завданні дії має бути оформлено як окремі функції.
Пам’ять під черговий елемент динамічної структури даних потрібно виділяти динамічно.
Виконання дій з обслуговування динамічної структури даних повинно виконуватися в режимі діалогу з користувачем.
Уведення структур можна реалізувати одним із таких механізмів:
уведення заздалегідь вибраної кількості структур (не менше за 5);
уведення до появи заданої ознаки закінчення уведення структур;
діалог із користувачем про потребу продовжувати уведення.
Постановка першого завдання#
Для того, щоб створити список, потрібно створити спочатку перший елемент списку, а потім у циклі додати до нього інші елементи. Додавання може виконуватися як на початок, так і в кінець списку. Має бути визначена ознака кінця формування списку. Не можна задавати спочатку кількість елементів списку.
Для зручності роботи і правильного пересування по списку рекомендується працювати з трьома вказівниками:
head
— вказівник на голову списку;current
— вказівник на поточний елемент списку;tail
— вказівник на останній елемент списку.
Постановка другого завдання#
Для кожного варіанту потрібно взяти шаблон структури із варіанту для Лабораторної роботи №5 з відповідним номером.
У кожному варіанті потрібно виконати всі дії зі структурами, перераховані в попередній роботі, з урахуванням технології роботи з однозв’язним списком, розміщеним у динамічній пам’яті. Написану програму потрібно доповнити функціями з наступних пунктів.
Для кожного з варіантів завдання потрібно розробити такі функції:
створення списку;
додавання елемента в список:
у початок списку;
у кінець списку;
після елемента з заданим номером;
після елемента з заданим ключем;
видалення елемента зі списку:
з початку списку;
з кінця списку;
із заданим номером;
із заданим ключем;
виведення вмісту списку на екран;
упорядкування елементів списку за вибраною ознакою.
Виведення вмісту списку (за відповідним пунктом меню) потрібно виконати у вигляді таблиці, стовпці якої відповідають полям шаблону варіанту структури, а рядки — вмісту кожного екземпляра структури зі сформованого списку. Поля під час виведення повинно бути відформатовано за допомогою табуляції.
Варіанти завдань до лабораторної роботи#
Операції для роботи зі списком, який складається із найпростіших елементів#
Створити однонаправлений список, що складається з
n
цілих чисел. Вилучити з першого списку і перемістити в другій список все від’ємні числа.Створити однонаправлений список, що складається з
n
цілих чисел. Видалити зі списку всі елементи, що знаходяться між його максимальним і мінімальним елементами.Створити однонаправлений список, що складається з
n
цілих чисел. Перемістити в другий список елементи, що повторюються в першому списку більш ніж один раз.Створити однонаправлений список, що складається з
n
цілих чисел. Перетворити його в два списки: перший список повинен містити тільки парні числа, другий - непарні.Створити однонаправлений список, що складається з
n
дійсних чисел. Розташувати елементи списку в зворотному порядку.Створити два однонаправлених списка, що складаються з
n
цілих чисел, впорядкованих за зростанням. Перемістити всі дані в третій список, видаляючи повторювані значення.Створити два однонаправлених списка, що складаються з
n
цілих чисел впорядкованих за зростанням. Перемістити в третій список елементи зі значеннями, які зустрічаються і в першому і в другому списках.Створити однонаправлений список, що складається з
n
цілих чисел. Від’ємні елементи видалити, а парні перенести в другий список.Створити однонаправлений список, що складається з
n
символів латинського алфавіту і символів арифметичних операцій. Перемістити символи арифметичних операцій в другий список.Створити два однонаправлених списка, що складаються з
n
символів латинського алфавіту. Перемістити всі дані в третій список таким чином, щоб спочатку йшли всі рядкові символи з обох списків, а потім - прописні.Створити однонаправлений список, що складається з
n
цілих чисел. Перемістити в другій список елементи, значення яких більше середнього значення елементів першого списку.Створити однонаправлений список, що складається з
n
символів латинського алфавіту. Видалити зі списку елементи з повторюваними більш ніж один раз значеннями.Створити два однонаправлених списку, що складаються з
n
цілих чисел, впорядкованих за зростанням. Перетворити їх в третій список, який буде впорядкований по спадаючій.Створити однонаправлений список, що складається з
n
символів латинського алфавіту. Перетворити його в два списки: перший список повинен містити прописні символи, другий - рядкові.Створити однонаправлений список, що складається з
n
цілих чисел. Вставити нові елементи в початок, кінець і після зазначеного елементу списку.Створити два однонаправлених списка, що складаються з
n
цілих чисел. Перевірити на рівність двох списків і визначити, чи входить перший список у другий.Створити однонаправлений список, що складається з
n
цілих чисел. Вставити в список новий елемент за кожним входженням зазначеного (уведеного) елементу списку.Створити два однонаправлених списка, що складаються з
n
цілих чисел. Вставити в кінець першого списку всі елементи другого списку і перенести останній елемент в початок нового списку.Створити два однонаправлених списку, що складаються з
n
цілих чисел. Створити третій список, включивши в нього по одному разу елементи, які входять одночасно в обидва списки.Створити два однонаправлених списка, що складаються з
n
цілих чисел. Створити третій список, включивши в нього по одному разу елементи, які входять в один зі списків, але в той же час не входять в інший.Створити два однонаправлених списка, що складаються з
n
цілих чисел, впорядкованих за неспаданням. Об’єднати в один упорядкований по неспаданню список.Створити однонаправлений список, що складається з додатних і від’ємних чисел типу
float
. Вставити після кожного від’ємного числа елемент зі значенням 0.Створити однонаправлений список, що складається з
n
цілих чисел. Видалити з нього елемент із заданим номером, додатиК
елементів, починаючи з заданого номера.Створити однонаправлений список, що складається з
n
цілих чисел. Видалити з нього К елементів, починаючи з заданого номера, додати ціК
елементів піля іншого заданого номера.Створити однонаправлений список, що складається з
n
цілих чисел. Видалити зі списку всі елементи з парними номерами (2, 4, 6 і. т. д.), записавши їх в новий список.Створити однонаправлений список, що складається з
n
цілих чисел. Всі елементи, що повторюються подвоїти. Визначити розмір списку.Створити три однонаправлених списка. Знайти входження другого списку в перший і замінити на третій.
Створити однонаправлений список, що складається з
n
цілих чисел. Видалити з нього елемент, який знаходиться за кожним входженням заданого елементу списку (якщо такий є).Створити однонаправлений список, що складається з
n
цілих чисел. Знайти суму останнього і передостаннього елементів списку і зробити цю суму першим елементом списку.Створити однонаправлений список, що складається з
n
цілих чисел. Перевернути список, тобто змінити вказівники на наступний елемент у цьому списку так, щоб його елементи виявилися розташованими в зворотному порядку.