Видео: Разница между массивами и связными списками
2024 Автор: Mildred Bawerman | [email protected]. Последнее изменение: 2023-12-16 08:42
Массивы против связанных списков
Массивы - это наиболее часто используемая структура данных для хранения коллекции элементов. Большинство языков программирования предоставляют методы для простого объявления массивов и доступа к элементам в массивах. Связанный список, точнее односвязный список, также представляет собой структуру данных, которая может использоваться для хранения коллекции элементов. Он состоит из последовательности узлов, и каждый узел имеет ссылку на следующий узел в последовательности.
На рисунке 1 показан фрагмент кода, который обычно используется для объявления и присвоения значений массиву. На рисунке 2 показано, как массив будет выглядеть в памяти.
Приведенный выше код определяет массив, который может хранить 5 целых чисел, и доступ к ним осуществляется с использованием индексов от 0 до 4. Одним из важных свойств массива является то, что весь массив выделяется как единый блок памяти, и каждый элемент получает свое собственное пространство в массиве. После определения массива его размер фиксируется. Поэтому, если вы не уверены в размере массива во время компиляции, вам нужно будет определить достаточно большой массив, чтобы быть в безопасности. Но в большинстве случаев мы на самом деле собираемся использовать меньшее количество элементов, чем мы выделили. Таким образом, на самом деле тратится значительный объем памяти. С другой стороны, если «достаточно большой массив» на самом деле окажется недостаточно большим, программа выйдет из строя.
Связанный список выделяет память своим элементам отдельно в собственном блоке памяти, и общая структура получается путем связывания этих элементов в виде звеньев в цепочке. Каждый элемент связанного списка имеет два поля, как показано на рисунке 3. Поле данных содержит фактические сохраненные данные, а следующее поле содержит ссылку на следующий элемент в цепочке. Первый элемент связанного списка сохраняется как заголовок связанного списка.
данные | следующий |
Рисунок 3: Элемент связного списка
На рисунке 4 изображен связанный список из трех элементов. Каждый элемент хранит свои данные, а все элементы, кроме последнего, хранят ссылку на следующий элемент. Последний элемент содержит нулевое значение в своем следующем поле. Доступ к любому элементу в списке можно получить, начав с заголовка и следуя за следующим указателем, пока не встретите требуемый элемент.
Несмотря на то, что массивы и связанные списки похожи в том смысле, что оба они используются для хранения коллекции элементов, они несут различия из-за стратегий, которые они используют для выделения памяти для его элементов. Массивы выделяют память всем своим элементам как единый блок, и размер массива должен быть определен во время выполнения. Это сделало бы массивы неэффективными в ситуациях, когда вы не знаете размер массива во время компиляции. Поскольку связанный список выделяет память своим элементам отдельно, это было бы очень эффективно в ситуациях, когда вы не знаете размер списка во время компиляции. Объявление и доступ к элементам в связанном списке будут непростыми по сравнению с тем, как вы напрямую получаете доступ к элементам в массиве с помощью его индексов.
Рекомендуем:
Разница между симметричными и асимметричными верхними молекулами
Ключевое различие между симметричными и асимметричными молекулами верха состоит в том, что молекулы симметричного верха имеют одну ось собственного вращения и два момента инерции
Разница между трансгенными мышами и мышами с нокаутом
Ключевое различие между трансгенными мышами и мышами с нокаутом заключается в том, что трансгенные мыши имеют чужеродные гены, встроенные в их геном, в то время как мыши с нокаутом имеют функцию
Разница между собой и между собой
Друг друга против друг друга В английском языке есть взаимные местоимения, которые используются, чтобы говорить о взаимных чувствах. Два таких профи
Разница между массивами и аррайлистами
Массивы против Arraylists Массивы - это наиболее часто используемая структура данных для хранения коллекции элементов. Большинство языков программирования предоставляют методы для упрощения
Разница между ключевыми различиями между металлическими и неметаллическими минералами
Ключевое различие - металлические и неметаллические минералы Минерал - это встречающийся в природе твердый и неорганический компонент с определенной химической формулой и