Я думаю, ви не повинні приймати не розуміння цих речей, бо вони справді принципові. Якщо говорити, то, що ти їх не розумієш, це нічого, чого погано почувати. Ви можете пояснити пов’язаний список дитині. Тож якщо ваш вчитель не зміг вам їх пояснити, це стільки їх вина. Тож не варто витрачати час на занепокоєння, а намагатися знайти людей, які можуть вам це пояснити. Часто однокурсник набагато кращий викладач, ніж штатний академік.
Подумайте про поїзди
Уявіть, у вас є набір залізничних вагонів, де кожен вагон має достатню місткість, щоб містити одну частину даних. Кожен візок має на своєму кінці гачок, який можна прикріпити до передньої частини вагона.
Це фактично дає вам пов’язаний список:
- порожній список: поїзд, що не містить вагонів (і тому не має даних)
- додавання елемента: додайте новий вагон, що містить елемент перед поїздом, і підключіть його до решти поїзда
- видалення елемента: знайдіть каретку, що містить елемент. Зніміть його (можливо, тут вам знадобиться кран :)), зачепіть карету раніше, а карету після.
- Заміна елемента: знайдіть каретку, що містить старий елемент. Обміняйте старий елемент на новий.
- вставлення елемента відразу за іншим: знайдіть каретку, що містить елемент, після якого потрібно вставити. Вставте після нього новий вагон, який підключений відповідно (ми не хочемо, щоб поїзд розвалився) і вкладіть у нього новий елемент.
На відміну від цього, ви можете думати про масив як поїзд із заданою кількістю вагонів, який не можна переставляти жодним чином. Все, що ви можете зробити - це змінити дані в них. Ця модель також пояснює багато проблемних масивів:
- Якщо ви хочете вставити один елемент перед іншим, вам доведеться перемістити всі наступні елементи до наступної каретки.
- Якщо ви хочете видалити один елемент, вам потрібно буде перемістити всі наступні елементи однією кареткою на передню частину.
- Якщо вам потрібен поїзд з більшою кількістю вагонів, вам доведеться побудувати новий, тому що ви не можете просто передбачити вагон. З іншого боку, знайти вагони в масиві набагато простіше, тому що ви можете просто їх постійно нумерувати (їх порядок ніколи не зміниться).
Що стосується стека: "стек" - це не менша структура даних, ніж ідея. Ідея стека полягає в тому, що він діє так, як стопку книг. Ви можете класти книги лише на вершину стека, і ви можете коли-небудь зняти верхню книгу зі стека (принаймні, якщо книги досить важкі).
Незважаючи на це, пов'язаний список може бути використаний як стек, якщо ви вважаєте, що дані в вагонах є книжками, а книга в першій самій вагоні як вершина стека.
Тож сподіваюся, що це вам допомогло. Можливо, цього не сталося. Можливо, ти більше візуального типу. У такому випадку я пропоную вам знайти когось, хто добре дасть наочні пояснення та пояснить це вам. Це не займе багато часу, але це абсолютно того варто.
Зараз нормально боротися з цим. Але просто його прийняття - це не варіант у довгостроковій перспективі.