Мал. 38. Виняток вузла, на який попередньо встановлений покажчик
Попередньо встановлено покажчик
Виключення зі списку вузла, на який
Виняток вузла, на який попередньо встановлений покажчик, не вимагає пошуку попереднього вузла (рис. 38). Після виключення вузла зі списку і повернення його елемента зберігання в купу, доступ до цього вузла по попередньо встановленим вказівником більш неможливий, тому даному покажчику слід привласнити значення NIL.
Procedure Del_Double (head: PDlist;
if (head <> nil) and (head ^ .next <> head)
and (head ^ .prev <> head) and (p <> nil) then
dispose (p); p: = nil
Операція пошуку вузла в двусвязного циклічному списку і операція руйнування виконуються так само, як в однозв'язного циклічному списку, тільки прохід можливий в будь-якому з двох напрямків: з використанням атрибута зв'язку next (тобто "вперед") або з використанням атрибута зв'язку prev ( тобто "назад").
Двусвязного циклічні списки, як і одинзв'язні, можна використовувати для реалізації різноманітних лінійних структур.
Ортогональний список (або мультіспісок) - це структура, кожен елемент якої входить більш ніж в один список одночасно і має відповідне числу списків кількість полів зв'язку. Реалізація кожного зі списків може бути виконана як одно- або двусвязного нециклічного або циклічного. Технологія обробки мультіспісков нічим не відрізняється від обробки звичайних списків, але так як мультіспісок одночасно містить кілька списків, кожну операцію слід виконати окремо для кожного списку.
Мал. 39. Структура мультіспіска студентів
Опис елемента зберігання мультіспіска студентів: