Автор оригинала: David Wong.
Оригинальная ссылка: блог хэ Сяодуна
массив и Связанный список Главное различие между ними заключается в их структуре. Массивы основаны на индексе структура данных s, в которой каждый элемент связан с индексом. С другой стороны, связанный список опирается на ссылки, где каждый узел состоит из данных и ссылок на предыдущий и следующий элементы.
- Массивы-это структуры данных, содержащие коллекции элементов данных аналогичных типов, в то время как связанные списки рассматриваются как структуры метаданных, не являющиеся базовыми, которые содержат коллекции неупорядоченных связанных элементов, называемых узлами.
- Элемент в массиве принадлежит индексу, то есть, если вы хотите ввести четвертый элемент, вы должны записать имя переменной и ее индекс или позицию в квадратных скобках. Однако в списке ссылок вам придется начинать с нуля и работать до тех пор, пока вы не дойдете до четвертого элемента.
- Хотя доступ к массиву элементов выполняется быстро, а список ссылок занимает линейное время, он намного медленнее.
- Такие операции, как вставка и удаление массивов, занимают много времени. С другой стороны, эти операции в связанном списке выполняются быстро.
- Массив имеет фиксированный размер. Напротив, связанные списки являются динамичными и гибкими, их можно расширять и уменьшать в размере.
- В массиве память выделяется во время компиляции, в то время как в связанном списке память выделяется при выполнении или во время выполнения.
- Элементы непрерывно хранятся в массиве, в то время как он хранится случайным образом в списке ссылок.
- Поскольку фактические данные хранятся в индексе массива, требуется меньше памяти. Вместо этого в связанном списке требуется больше памяти, поскольку сохраняются дополнительные следующие и предыдущие ссылочные элементы.
- Кроме того, использование памяти в массиве неэффективно. Вместо этого в массиве эффективно используется память.
Сравнение диаграмм:
Необходимо отметить, что: Даже если вы используете двоичный поиск для упорядоченных массивов, временная сложность составляет O (logn). Следовательно, правильным выражением должно быть то, что массив поддерживает произвольный доступ, а временная сложность произвольного доступа в соответствии с индексом равна O (1) .
Если ваш код очень ограничен памятью, вам больше подходят массивы. Поскольку каждому узлу в списке требуется дополнительное место для хранения указателя на следующий узел, потребление памяти удвоится. Кроме того, частая вставка и удаление связанного списка приведет к частому использованию и освобождению памяти, что легко приведет к фрагментации памяти и вызовет операцию сборки мусора самого языка.
Ссылка на ссылку: разница между массивом и связанным списком
Нажмите здесь, чтобы узнать, вы станете сильнее!
Оригинал: “https://developpaper.com/the-difference-between-array-and-linked-list-in-data-structure/”