Hallo Forum,
wir hatten im Unterricht ne Liste programmiert gehabt, wo man am Ende und am Anfang etwas einfügen kann.
An den Anfang einfügen ist mir klar, sobald man etwas an den Anfang anfügt, wird das vorherige Listenelement mitübergeben und in die Instanz "weiter" gespeichert.
Aber, das an das Ende einfügen, raffe ich überhaupt nicht.
Hier mal der Code von ListenElement:
public class ListenElement {
private int daten;
private ListenElement weiter;
public ListenElement(int daten) {
this.daten = daten;
this.weiter = null;
}
public ListenElement(int daten, ListenElement weiter) {
this.daten = daten;
this.weiter = weiter;
}
public void setDaten(int daten) {
this.daten = daten;
}
public int getDaten() {
return daten;
}
public void setWeiter(ListenElement weiter) {
this.weiter = weiter;
}
public ListenElement getWeiter() {
return weiter;
}
public String toString() {
return Integer.toString(daten);
}
}
Und hier von der Liste, wo man an den Anfang und ans Ende etwas anhängen kann.
public class Liste {
private ListenElement anfang;
private ListenElement ende;
public Liste() {
anfang = null;
ende = null;
}
public Liste(Liste l) {
}
public boolean equals(Liste l) {
return false;
}
public boolean istLeer() {
return anfang == null;
}
public String toString() {
if (istLeer()) return "<>";
String ergebnis = "";
for (ListenElement frosch = anfang; frosch != null;
frosch = frosch.getWeiter())
ergebnis = ergebnis + frosch.getDaten() + " / ";
return ergebnis.substring(0, ergebnis.length()-3);
}
public void fuegeEinAmAnfang(int daten) {
anfang = new ListenElement(daten, anfang);
if (ende == null) ende = anfang;
}
public void fuegeEinAmEnde(int daten) {
if (istLeer()) {
fuegeEinAmAnfang(daten);
} else {
ende.setWeiter(new ListenElement(daten));
ende = ende.getWeiter();
}
}
public void loescheAmAnfang() {
if (istLeer()) return;
anfang = anfang.getWeiter();
if (anfang == null) ende = null;
}
public void loescheAmEnde() {
}
public int getElementAmAnfang() {
// Voraussetzung: Liste ist nichtleer
return anfang.getDaten();
}
public int getElementAmEnde() {
// Voraussetzung: Liste ist nichtleer
return ende.getDaten();
}
public int anzahlElemente() {
return 0;
}
}
Grüße