Я говорил о списках в статье Списки против кортежей. Это о связанных списках против списков.
Связанный список похож на список, поскольку они оба представляют собой последовательность данных.
Основное различие между ними состоит в том, что список представляет собой последовательность смежных ячеек памяти, в то время как элементы связанного списка могут размещаться в любом месте памяти.
И это из-за его структуры. Базовая структура связанного списка выглядит так
Каждый элемент в связанном списке называется node
Узел состоит из двух частей — раздела, содержащего элементы данных, и другого, содержащего указатель на следующий узел.
Этот указатель позволяет элементам связанного списка выделять различные места в памяти. Таким образом, когда новый элемент добавляется в связанный список, он может занимать наиболее эффективное место в памяти или самое удобное место.
Однако это не так эффективно, как добавление элемента в список. Если бы вам нужно было добавить элемент в связанный список, вам пришлось бы пройтись по каждому узлу в связанном списке, чтобы найти последний элемент, а затем добавить указатель на вновь добавленный элемент. Что отличается от списка, элементы которого хранятся в смежных ячейках памяти с некоторыми дополнительными пробелами. Вам просто нужно будет найти последний элемент, а затем добавить новый добавленный элемент в его конец.
Честно говоря, я не могу представить себе случая, когда я бы использовал связанные списки вместо списков. Тем более, что Python и JavaScript — мои основные языки программирования — не имеют легкодоступных связанных списков. Мне пришлось бы создать класс со всеми атрибутами, которые должен иметь связанный список.