Skip to content

hibbes/Listen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Listen

Einfach verkettete Liste in Java – selbst gebaut, ohne java.util.LinkedList. Didaktisches Minimalbeispiel zur Einführung dynamischer Datenstrukturen und rekursiver Methoden.

Klassen

Klasse Beschreibung
ListenElement Ein Listenknoten mit int-Inhalt und Referenz next auf den nächsten Knoten
Liste Fassade: hält den kopf des Listenanfangs, delegiert alle Operationen an das Kopf-Element
Test Testklasse mit main-Methode, baut eine Beispielliste auf und gibt sie aus

Warum „einfach verkettet"?

Jeder Knoten kennt nur seinen Nachfolger – nicht den Vorgänger. Das ist die minimalste Form einer verketteten Liste und eignet sich perfekt, um das Prinzip der Zeigerverkettung sichtbar zu machen:

kopf ─▶ [ 3 | • ] ─▶ [ 5 | • ] ─▶ [ 7 | • ] ─▶ [ 20 | • ] ─▶ [ 6 | null ]

Rekursion als Kernkonzept

Die Operationen sind rekursiv implementiert – jede Methode delegiert an next, bis das Listenende erreicht ist:

public void add(ListenElement neu) {
    if (next == null) {
        next = neu;          // Basisfall: am Ende eingefügt
    } else {
        next.add(neu);       // Rekursion: weiter hinten einfügen
    }
}

Dasselbe Muster bei toString() und remove(). Das macht den Code kurz, ist aber gleichzeitig ein schöner Einstieg in rekursives Denken.

Lernziele

  • Referenzen (Zeiger) als Verkettung nutzen
  • Rekursive Methoden an selbstbezüglichen Datenstrukturen
  • Prinzip „Wrapper-Klasse + Knoten-Klasse" (Liste vs. ListenElement)
  • Abstrahierter Zugriff: Nutzer sieht nur Liste, nicht die Knoten

Beispiel

Liste liste = new Liste(3);
liste.add(5);
liste.add(7);
liste.add(20);
liste.add(6);

System.out.println(liste);   // 3 5 7 20 6

liste.remove();              // entfernt das letzte Element
System.out.println(liste);   // 3 5 7 20

Projektstruktur

Listen/
├── src/
│   ├── Liste.java
│   ├── ListenElement.java
│   └── Test.java
├── .classpath
└── .project

Erweiterungsideen

  • Liste generisch machen (Liste<T> statt int)
  • length()-Methode
  • get(int index) / contains(int wert)
  • Gegenüberstellung mit java.util.LinkedList
  • Iterative statt rekursive Implementierung – und Vergleich (Stackgröße!)

Kontext

Unterrichtsmaterial Informatik, Sekundarstufe II – Einstieg in dynamische Datenstrukturen und Rekursion (Schiller-Gymnasium Offenburg).

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages