Ich denke, Sie dürfen es nicht akzeptieren, diese Dinge nicht zu verstehen, weil sie wirklich grundlegend sind. Davon abgesehen ist es nichts Schlechtes, wenn Sie sie nicht verstehen. Sie können einem Kind eine verknüpfte Liste erklären. Also, wenn Ihr Lehrer es versäumt hat, es Ihnen zu erklären, ist es ebenso ihre Schuld. Sie sollten sich also keine Sorgen machen, sondern versuchen, Leute zu finden, die es Ihnen erklären können. Oft ist ein Kommilitone ein weitaus besserer Lehrer als ein Vollzeitakademiker.
Denken Sie an Züge
Stellen Sie sich vor, Sie haben eine Reihe von Eisenbahnwaggons, in denen jeder Wagen genug Kapazität hat, um ein Datenelement aufzunehmen. Jeder Wagen hat an seinem Ende eine Art Haken, der an der Vorderseite eines anderen Wagens befestigt werden kann.
Dies gibt Ihnen in der Tat eine verknüpfte Liste:
- die leere Liste: der Zug enthält keine Wagen (und trägt daher keine Daten)
- Hinzufügen eines Elements: Fügen Sie einen neuen Wagen hinzu, der das Element vor dem Zug enthält, und haken Sie es an den Rest des Zugs an
- Entfernen eines Elements: Suchen Sie den Wagen, der das Element enthält. Entfernen Sie es (möglicherweise benötigen Sie hier einen Kran :)), haken Sie den Wagen vorher mit dem Wagen nachher ein.
- Ersetzen eines Elements: Suchen Sie den Wagen, der das alte Element enthält. Tauschen Sie das alte Element gegen das neue aus.
- Einfügen eines Elements direkt nach dem anderen: Suchen Sie den Wagen, der das Element enthält, nach dem Sie einfügen möchten. Fügen Sie einen neuen Wagen dahinter ein, der entsprechend eingehakt ist (wir möchten nicht, dass der Zug auseinanderfällt), und legen Sie das neue Element hinein.
Im Gegensatz dazu könnte man sich ein Array als einen Zug mit einer bestimmten Anzahl von Wagen vorstellen, die in keiner Weise neu angeordnet werden können. Sie können lediglich die darin enthaltenen Daten ändern. Dieses Modell erklärt auch viele der Probleme, die Arrays haben:
- Wenn Sie ein Element vor dem anderen einfügen möchten, müssen Sie alle folgenden Elemente in den nächsten Wagen verschieben.
- Wenn Sie ein Element entfernen möchten, müssen Sie alle folgenden Elemente um einen Wagen nach vorne verschieben.
- Wenn Sie einen Zug mit mehr Wagen benötigen, müssen Sie einen neuen bauen, da Sie nicht einfach einen Wagen voranstellen können. Auf der anderen Seite ist es viel einfacher, Wagen in einem Array zu finden, da Sie sie einfach dauerhaft nummerieren können (ihre Reihenfolge ändert sich nie).
Was den Stapel betrifft: Ein "Stapel" ist weniger eine Datenstruktur als eine Idee. Die Idee des Stapels ist, dass er sich wie ein Stapel Bücher verhält. Sie können nur Bücher auf den Stapel legen und Sie können immer nur das oberste Buch vom Stapel nehmen (zumindest, wenn die Bücher schwer genug sind).
Davon abgesehen kann eine verknüpfte Liste als Stapel verwendet werden, wenn Sie sich die Daten in den Wagen als Bücher und das Buch im ersten Wagen als obersten Stapel vorstellen.
Ich hoffe das hat dir geholfen. Vielleicht war es nicht so. Vielleicht bist du eher ein visueller Typ. In diesem Fall schlage ich vor, dass Sie jemanden finden, der gut darin ist, visuelle Erklärungen abzugeben und es Ihnen zu erklären. Es wird nicht lange dauern, aber es wird sich absolut lohnen.
Es ist in Ordnung, jetzt damit zu kämpfen. Aber es nur zu akzeptieren, ist auf lange Sicht keine Option.