Изменения

Перейти к: навигация, поиск

Список с пропусками

16 байт добавлено, 20:32, 22 марта 2019
Удаление элемента
===Удаление элемента===
Алгоритм удаления достаточно тривиален. прост:
# Найти удаляемый элемент
# Удалить его со всех уровней
Функция <tex>\mathtt{erase}</tex> удаляет вершину <tex>i</tex> из списка с пропусками.
'''voidfunction''' erase ('''node''' i, '''K''' key)
'''if''' i == ''null''
'''return'''
'''while''' i.key <= key <font color=darkgreen>// Ищем элемент</font>
i = i.next()
erase(i.refdown, key) <font color=darkgreen>// Удаляем с нижних уровней</font> '''if''' i.key == key <font color=darkgreen>// Если ключ совпадает</font>
'''delete'''(i) <font color=darkgreen>// удаляем и с этого уровня</font>
Для того, чтобы удалить элемент с ключом <tex>\mathtt{key}</tex> из списка с пропусками <tex>\mathtt{list}</tex> достаточно вызвать функцию <tex>\mathtt{erase}</tex> следующим образом:
erase(list.head(), key)
==Применение==
390
правок

Навигация