Связанный список

Связанный список определяется как набор узлов, по которым можно переходить, начиная с головного узла. Важно отметить, что head - это не узел, а адрес первого узла списка. Связанные списки очень полезны в ситуациях, когда программе необходимо очень тщательно управлять памятью и непрерывный блок памяти не нужен. Массив связанных списков - важная структура данных, которую можно использовать во многих приложениях. Концептуально массив связанных списков выглядит следующим образом.

  • Связанный список - распределение динамической памяти
  • Массив - ограниченное пространство / доступность

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

Зачем использовать связанный список вместо массива?

  • В связанном списке проще хранить данные разного размера. Массив предполагает, что каждый элемент имеет точно такой же размер.
  • Как вы упомянули, связному списку легче расти естественным образом. Размер массива должен быть известен заранее или воссоздан, когда он будет расти.
  • Перемешивание связанного списка - это просто изменение того, что на что указывает. Перемешивание массива сложнее и / или требует больше памяти.
  • Пока все ваши итерации происходят в контексте «foreach», вы не теряете производительность в итерациях.