Що таке зв'язаний список?
Уявіть собі ланцюг скріпок, кожна з яких тримає інформацію. Це по суті і є зв'язаний список!
Кожен елемент у зв'язаному списку називається "вузлом".
Кожен вузол містить дві частини:
- Дані: Це фактична інформація, яку ви хочете зберігати (наприклад, числа 12, 34 тощо в нашому прикладі).
- Вказівник: Зв'язок з наступним вузлом у ланцюгу.
Як зв'язані списки відрізняються від масивів
Зображення підкреслює основні відмінності:
Прямий доступ:
- Масив: Уявіть масив як ряд пронумерованих коробок. Ви можете безпосередньо перейти до будь-якої коробки, знаючи її номер (індекс). Наприклад, щоб отримати значення за індексом 2, ви одразу переходите до цього місця.
- Зв'язаний список: Це схоже на слідування карті скарбів. Ви починаєте з початку і слідуєте за вказівниками (стрілками) від одного вузла до іншого, поки не досягнете бажаного елемента. Ви не можете безпосередньо перейти до конкретної позиції.
Розподіл пам'яті:
- Масив: Усі елементи зберігаються в неперервному блоці пам'яті. Це означає, що вони розподіляються разом у послідовності.
- Зв'язаний список: Елементи можуть бути розкидані де завгодно в пам'яті. Кожен вузол має своє місце в пам'яті, і вказівники з'єднують їх разом.
Візуальний приклад:
- Масив: Уявіть собі ряд полиць, кожна з яких має свій номер. Ви легко можете взяти предмет з будь-якої полиці, знаючи її номер.
- Зв'язаний список: Уявіть собі полювання за скарбами. Ви починаєте з першої підказки, яка веде до другої, і так далі. Ви не можете безпосередньо дістатися до скарбу, не слідуючи підказкам по черзі.
Коли використовувати зв'язані списки
Зв'язані списки особливо корисні, коли:
- Потрібно часто вставляти або видаляти елементи: Додавання або видалення елементів у середині масиву може бути повільним, оскільки можливо доведеться переміщувати інші елементи. У зв'язаному списку достатньо лише відкоригувати вказівники.
- Пам'ять є проблемою: Масиви потребують неперервного блоку пам'яті, що може бути проблемою, якщо точний розмір не відомий заздалегідь. Зв'язані списки є більш гнучкими щодо використання пам'яті.
.
🔰СЛІДУЙТЕ ЗА МНОЮ НА 🔗LINKEDIN..
.
Дякую за читання !!!! 💓
Перекладено з: Introduction to Linked List