Алгоритм - циклические и двусвязные списки
Что такое круговой список?
В последнем узле списка поле link содержит null — значение, указывающее на конец. Циклический список состоит из указания на первый узел в списке. Говорят, что это открытый или линейный сукк (хвост) = голова.
Определение кругового списка по указателю
<таблица align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;">

1) Просмотрите список
<таблица align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;">
var pp:ptr
start
pp := p
repeat
process (*pp.val)
pp := *pp.link
to (pp=p)
end
2) Вставка
Вставка в головку
<таблица align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;">
Интеграция за пределами лида
<таблица align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;">
См.:
Вставка элемента в связанный список.
3) Удаление
<таблица align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;">
См.: удаление элемента из связанного списка.
Плюсы и минусы
- Курс не имеет особого случая.
- Три случая для вставки:
- Вверху (пустой список).
- Вверху (непустой список).
- Где-то еще, а не в лидерах.
- Три случая для удаления;
- Вверху (список из одного пункта).
- Вверху (список с более чем одним элементом).
- Где-то еще, а не в лидерах
Определение циркулярного списка по ссылке
- Маршрут прокладывается от текущей ссылки, которая его отправляет.
- Интеграция не имеет особого случая.
- Мы должны быть уверены, что звено, которое нужно устранить, не является часовым.