Зачем нам нужен связанный список?

В основном связанный список и массив похожи, массив определенно проще в использовании, уже есть встроенная функция, такая как pop, popleft, можно повторять ее, все функции, которые нам нужны, уже есть. Итак, зачем нам нужен связанный список?

массив хранится в непрерывных ячейках памяти, поэтому память должна быть выделена заранее для определенного количества элементы, он должен иметь последовательный блок памяти, он должен иметь блок памяти с последовательным адресом. Просто пройтись по массиву, следующее значение находится внутри следующего адреса памяти, представьте, если первый элемент в массиве хранится в индексе 10 памяти, а размер составляет 15 байт, второй элемент будет храниться в индексе 10+ 15+1 = 26-й индекс, чтобы найти третий элемент, просто используйте начальный индекс первого элемента, плюс размер первого элемента, плюс размер второго элемента, плюс 1.

связанный список является динамическим. Используемая память может быть увеличена и уменьшена во время во время выполнения память заранее не выделяется. Для каждого элемента в ячейке памяти связный список хранит значение элемента и ссылку или указатель на следующий элемент. Представьте, что у нас есть узел 34|10, значение узла равно 34, следующий элемент хранится в ячейке памяти «10», чтобы пройти по связанному списку вам просто нужно знать следующую ячейку памяти, которая равна «10», а остальные узлы могут последовательно проходиться, используя ссылку на следующий элемент в каждом узле.

Что такое связанный список?

Если вы выполните поиск по связанному списку, вы увидите все статьи, в которых говорится, что связанный список — это линейный набор элементов данных, в котором элементы не хранятся в непрерывной памяти местоположения. Элементы в связанном списке связаны с помощью указателей.

Поскольку связанный список состоит из узлов, где каждый узел содержит данные и ссылка на следующий узел. Вот почему они привязаны или связаны со следующим узлом. В последнем узле он будет указывать на null или none значение, означающее, что это конец связанного списка.

Мы создадим связанный список шаг за шагом:

В приведенном ниже коде мы создаем класс Node, состоящий из val и next. Для вас, ребята, которые запутались, что такое «__repr__», это просто встроенная функция средствами Python для представления.

Теперь мы рассмотрим значение связанного списка и посчитаем сумму всех значений. Это всего лишь пример того, как мы можем перемещаться по связанному списку. Сначала мы инициализируем значение суммы равным 0, затем установим указатель на связанный список, а затем повторим пока указатель не равен None, потому что это последний узел связанного списка всегда имеет значение None (вы можете видеть это в предыдущем примере), затем добавьте каждое из значений, затем переместите указатель на следующий узел и, наконец, возвращает значение суммы.

Наконец, вы не хотите создавать связанный список, используя «.next.next.next.next», верно? Вот как вы можете автоматизировать создание связанного списка, создав заголовок связанный список добавьте значение и последовательно перемещайте указатель, чтобы может имитировать шаблон «.next.next.next».

Выводы:

Таким образом, массив проще в использовании и хранится в непрерывных ячейках памяти. В то время как связанный список имеет более гибкое или динамическоераспределение памяти, которое можно увеличивать или уменьшать во время выполнения.
связанный список состоит из узлов,где каждый узел содержит данные и ссылку на следующий узел.
Из сделанных нами сценариев теперь можно выполнять итерацию по связанный список также может создавать его автоматически на основе ваших данных.

Я надеюсь, что с помощью этого вы сможете больше узнать об основах связанного списка, чтобы вы могли манипулировать своей структурой данных, чтобы иметь лучшую систему с динамическим распределением памяти с Python3. Если у вас есть предложения, какую статью мне нужно сделать следующей, или какие-либо отзывы, я бы очень хотел их услышать!