ол, и ми віклікаємо функцію InsertAfter, то список зіпсується, так як в InsertAfter Ніяк НЕ обробляється перевірка tail списком. Тому для ітераторів більш правильністю рішенням буде напісаті ВЛАСНА функцію. Причому краще Цю функцію сделать задля ітераторів а для Списків, а ітераторі можна передаваті у функцію у вігляді аргументів:
Insert (SListIterator & itr, IceCream d) {(itr. Valid ()) {. node-> InsertAfter (d); (itr.node == tail) {= itr.node- > next;
} + +;
}
Мі Робимо перевірку, на что вказує ітератор. Если ВІН вказує на 0, то Нічого НЕ відбувається. Если ж у ітераторі містіться коректний значення, то ми додаємо вузол за дод омога Функції InsertAfter. І тепер нужно перевіріті, ЯКЩО ми додали вузол после последнего, нужно пересунуті tail. p align="justify"> І остання функція якові мі розглянемо: функція видалений Вузли Зі зв'язного списку:
SLinkedList: Remove (SListIterator & itr) {* temp = head; (itr.node == head) {. Forward (); ();
} {(temp-> next! = itr.node) temp = temp-> next;. Forward (); (temp-> next == tail) tail = temp; temp-> next;> next = itr.node;
} -;
}
Даній метод схожий на метод видалений последнего елемента списку, тут так само вікорістовується тимчасова змінна для зберігання вказівніка на елемент списку.
5. ІНСТРУКЦІЯ користувача
Для роботи з додатком звітність, запустіті віконуючій файл Var_022.exe. З з'явитися вікно.
В
Малюнок 13 - Головне вікно програми
принизив у рядку статусу відображаються Поточні координати міші. Основне поле - для малювання фігурі помощью міші. Такоже у вікні є головне меню, что має Наступний структуру и відбіває практично ВСІ функціє додатка:
Гј Файл
o Завантажити список
o Зберегти поточний список
o Вихід
Гј Об'єкт
o Створити
o Перемістити
o Повернути щодо
В§ точки
В§ вершини фігури
o Відобразити щодо
В§ Почала координат
В§ Осі х
В§ ...