Преимущества и недостатки связанного списка

Опубликовано: 4 Декабря, 2021

Существует множество структур данных, таких как массивы, связанные списки и т. Д. У каждого вида организации есть свои сильные и слабые стороны. По этим причинам важно знать преимущества и недостатки различных структур данных, когда дело доходит до разработки, оптимизации и масштабирования программ. В этой статье мы обсудим преимущества и недостатки связного списка.

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

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

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

Типы связанного списка :

  • Односвязный список : это простейший тип связного списка, в котором каждый узел содержит некоторые данные и указатель на следующий узел того же типа данных. Узел содержит указатель на следующий узел, это означает, что узел хранит адрес следующего узла в последовательности. Единый связанный список позволяет просматривать данные только одним способом.
  • Двусторонний или двусторонний связанный список : двусвязный список или двусторонний связанный список - это более сложный тип связанного списка, который содержит указатель на следующий, а также на предыдущий узел в последовательности, поэтому он содержит три части - данные , указатель на следующий узел и указатель на предыдущий узел. Это позволит нам перемещаться по списку и в обратном направлении.
  • Циклический связанный список : Циклический связанный список - это список, в котором последний узел содержит указатель на первый узел списка. При обходе кругового списка понравившихся можно начать с любого узла и перемещаться по списку в любом направлении вперед и назад, пока не достигнет того же узла, с которого был начат. Таким образом, круговой связанный список не имеет ни начала, ни конца.
  • Круговой двусвязный список : Двусвязный круговой список или круговой двусторонний связанный список - это более сложный тип связного списка, который содержит указатель на следующий, а также на предыдущий узел в последовательности. Разница между двусвязным и кольцевым двусвязным списком такая же, как и между односвязным списком и кольцевым связанным списком. Круговой двусвязный список не содержит нуля в предыдущем поле первого узла.

Преимущества связанного списка :

  • Динамическая структура данных: связанный список представляет собой динамическую структуру, поэтому он может увеличиваться и уменьшаться во время выполнения за счет выделения и освобождения памяти. Таким образом, нет необходимости указывать начальный размер связанного списка.
  • Отсутствие потерь памяти: в связанном списке может быть достигнуто эффективное использование памяти, поскольку размер связанного списка увеличивается или уменьшается во время выполнения, поэтому нет потерь памяти и нет необходимости предварительно выделять память.
  • Реализация: линейные структуры данных, такие как стек и очереди, часто легко реализовать с помощью связного списка.
  • Операции вставки и удаления: операции вставки и удаления в связанном списке намного проще. Нет необходимости сдвигать элементы после вставки или удаления элемента, необходимо обновить только адрес, присутствующий в следующем указателе.

Недостатки связанного списка :

  • Использование памяти: в связанном списке требуется больше памяти по сравнению с массивом. Поскольку в связном списке также требуется указатель для хранения адреса следующего элемента, а для него требуется дополнительная память.
  • Обход: в связанном списке обход занимает больше времени по сравнению с массивом. Прямой доступ к элементу невозможен в связанном списке, как в массиве по индексу. Например, для доступа к режиму в позиции n необходимо пройти все узлы перед ним.
  • Обратный обход: в односвязном списке обратный обход невозможен, но в случае двусвязного списка он может быть возможен, поскольку он содержит указатель на ранее связанные узлы с каждым узлом. Для выполнения этой дополнительной памяти требуется обратный указатель, следовательно, происходит потеря памяти.
  • Произвольный доступ: произвольный доступ в связанном списке невозможен из-за динамического распределения памяти.

РЕКОМЕНДУЕМЫЕ СТАТЬИ