Понимание связных списков: от основ до практики

Связные списки, в отличие от стандартных массивов, не имеют фиксированного размера и используют узлы, где каждый узел хранит значение и ссылку на следующий узел. В Python, в отличие от массивов, связные списки не встроены, поэтому их обычно реализуют через классы.
Понимание связных списков: от основ до практики
Изображение носит иллюстративный характер

Основной элемент связного списка — узел, представленный классом с атрибутами val (значение узла) и next (ссылка на следующий узел). Создание связного списка начинается с последнего узла, у которого next равен None, затем постепенно добавляются предыдущие узлы, каждый из которых ссылается на уже созданный последующий. В next всегда должен быть объект того же класса, иначе будет ошибка.

Доступ к элементам связного списка осуществляется последовательно, начиная с первого узла. Чтобы просмотреть все значения, используется цикл while, который итерируется до тех пор, пока next не станет None. В цикле значение текущего узла добавляется в список, а затем текущий узел заменяется на следующий.

При таком подходе, связный список «раскручивается» в процессе прохода: переменная, отслеживающая текущий узел, перемещается от узла к узлу, и в конце концов доходит до None. Предыдущие узлы при этом не сохраняются, а обрабатываются лишь по ходу движения по списку.


Новое на сайте

19905Зачем древние египтяне строили круглые храмы? 19904Планета, на которой вы живёте, но почти не знаете 19903Может ли анализ крови остановить рак печени ещё до его начала? 19902Кто такие GopherWhisper и зачем им монгольские чиновники? 19901«Вояджер-1» готовится к манёвру «большой взрыв»: NASA отключает приборы ради выживания 19900Почему вокруг Чатемских островов появилось светящееся кольцо из планктона? 19899Как взлом Vercel начался с Roblox-скрипта на чужом компьютере 19898Кто лежит в шотландских гробницах каменного века? 19897Почему две англосаксонские сестра и брат были похоронены в объятиях 1400 лет назад? 19896Гормон GDF15: найдена причина мучительного токсикоза у беременных 19895Почему хакеры Harvester прячут вредоносный код в папке «Zomato Pizza»? 19894Робот-гуманоид Panther от UniX AI претендует на место в каждом доме 19893Artemis застряла на земле: NASA не может лететь на луну без новых скафандров 19892Почему 20 000 промышленных устройств по всему миру оказались под угрозой взлома? 19891Зачем египетская мумия «проглотила» «Илиаду»?
Ссылка