вважаю, що він забезпечує найбільш ефективну роботу з даними. Основна увага при розробці програми слід приділити разбиению на функції і специфікації їх інтерфейсів. Тобто логічно оформити у вигляді функцій різні операції зі списком (формування, пошук, додавання, видалення елемента і т.д.), оскільки вони являють собою закінчені дії. Інтерфейс користувача організуємо у вигляді текстового меню, яке виводитиметься на екран після кожної дії.
Будемо виходити з того, що всі функції повинні бути незалежні, щоб зміни в одній функції не могли впливати на поведінку іншої. Для цього все, що функцій необхідно отримувати ззовні, будемо передавати їм через параметри.
Елементи списку представимо у вигляді структури з ім'ям Node, що містить інформаційне поле (власне бережене символ) і два покажчика: на попередній елемент і на наступний.
struct Node
{d; * next; * Prev;
};
Тепер визначимо інтерфейс програми. Перелічимо основні функції роботи з елементами списку, які нам знадобляться:
- додавання елемента;
- вставка елемента;
- видалення обраного елемента;
- пошук заданого елемента;
- сортування списку;
- виконання завдання курсової роботи;
- виведення списку на екран.
Кожен пункт цього меню, оформимо у вигляді окремої функції. Давайте шляхом логічних міркувань спробуємо визначити їх інтерфейси і алгоритми роботи.
Додавання елемента.
Щоб додати новий елемент у список, потрібно знати, що і куди додавати. Іншими словами в функцію в якості параметрів потрібно передати покажчики на початок списку і кінець списку, а всередині неї організувати введення елементу. При цьому покажчики на початок і кінець списку повинні бути змінені всередині функції, отже, слід передати їх по посиланнях. Алгоритм роботи функції додавання наступний: ввести елемент, потім обнулити покажчик на наступний елемент (тому додавання відбувається в кінець списку), а в покажчик на попередній елемент записати адресу попереднього елемента або обнулити його (якщо список порожній).
Вставка елемента.
Щоб вставити новий елемент в список, потрібно знати після якого елемента буде проведена вставка. Отже, алгоритм роботи функції вставки такий: ввести вставляється елемент, ввести елемент, після якого буде проведена вставка і якщо такий елемент знайдено, призвести вставку і скоригувати покажчики голови і хвоста списку.
Видалення елемента.
Щоб видалити елемент, потрібно знати, звідки і який елемент видалити. Попередньо потрібно знайти цей елемент, тобто шляхом проходу по списку отримати покажчик на нього. Отже, всередині функції видалення буде викликатися функція пошуку, яку теж слід оформити окремо. Алгоритм роботи функції видалення наступний: вводиться елемент, який потрібно видалити, потім в залежності від того, знаходиться елемент на початку списку, в середині або в кінці, цей елемент видаляється і відповідним чином коригуються покажчики на попередній і наступний елементи, а також покажчики голови і хвоста списку. Як параметри функція буде отримувати пос...