Myślę, że nie wolno wam nie rozumieć tych rzeczy, ponieważ są one naprawdę fundamentalne. To powiedziawszy, ich niezrozumienie nie jest niczym złym. Możesz wyjaśnić dziecku powiązaną listę. Jeśli więc nauczyciel nie wyjaśnił ci ich, to tyle samo ich wina. Więc nie powinieneś tracić czasu na martwienie się, ale raczej staraj się znaleźć ludzi, którzy mogą ci to wytłumaczyć. Często kolega jest o wiele lepszym nauczycielem niż nauczyciel akademicki.
Pomyśl o pociągach
Wyobraź sobie, że masz zestaw wagonów kolejowych, w których każdy wagon ma wystarczającą pojemność, aby pomieścić jedną część danych. Każdy wózek ma na swoim końcu hak, który można przymocować z przodu innego wózka.
Daje to w rzeczywistości połączoną listę:
- pusta lista: pociąg, w którym nie ma wagonów (a zatem nie ma danych)
- dodawanie elementu: dodaj nowy wagon zawierający element przed pociągiem i zaczep go do reszty pociągu
- usuwanie elementu: znajdź karetkę zawierającą ten element. Wyjmij go (możesz potrzebować tutaj dźwigu :)), zaczep hak przed, a potem hak.
- zastępując element: znajdź karetkę zawierającą stary element. Wymień stary element na nowy.
- wstawianie elementu zaraz za drugim: znajdź karetkę zawierającą element, po którym chcesz wstawić. Włóż za nim nowy wagon, który jest odpowiednio zaczepiony (nie chcemy, aby pociąg się rozpadł) i włóż do niego nowy element.
W przeciwieństwie do tego, możesz myśleć o tablicy jako pociągu z określoną liczbą wagonów, których nie można w żaden sposób zmienić. Wszystko, co możesz zrobić, to zmienić dane w nich zawarte. Ten model wyjaśnia również wiele problemów, jakie macie tablice:
- Jeśli chcesz wstawić jeden element przed drugim, będziesz musiał przenieść wszystkie następujące elementy do następnej karetki.
- Jeśli chcesz usunąć jeden element, musisz przenieść wszystkie następujące elementy o jeden wózek do przodu.
- Jeśli potrzebujesz pociągu z większą liczbą wagonów, będziesz musiał zbudować nowy, ponieważ nie możesz po prostu przygotować wagonu. Z drugiej strony znalezienie powozów w tablicy jest znacznie łatwiejsze, ponieważ można je po prostu numerować na stałe (ich kolejność nigdy się nie zmieni).
Jeśli chodzi o stos: „stos” to mniej struktura danych niż pomysł. Idea stosu polega na tym, że działa on podobnie jak stos książek. Możesz umieścić książki tylko na wierzchu stosu i zawsze możesz zdjąć wierzchnią książkę ze stosu (przynajmniej jeśli książki są wystarczająco ciężkie).
Biorąc to pod uwagę, połączoną listę można wykorzystać jako stos, jeśli myślisz o danych w wagonach jak o książkach, a książkę w pierwszej najbardziej przewożonej o górze stosu.
Mam nadzieję, że to ci pomogło. Może nie. Może jesteś bardziej wizualny. W takim przypadku proponuję znaleźć kogoś, kto jest dobry w udzielaniu wyjaśnień wizualnych i wytłumaczy ci to. To nie potrwa długo, ale absolutnie będzie tego warte.
Można teraz z tym walczyć. Ale samo zaakceptowanie tego nie jest opcją na dłuższą metę.