Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Bei einer Listenaufgabe sollen die Methoden entfernen (entfernt letztes Element einer Liste), länge (länge der Liste), summe (Summe der Listenelemente), addieren (addiert eine Zahl auf alle Listenelemente) geschrieben werden. Ich habe versucht die Aufgaben zu lösen aber komme nicht weiter, da ich kein Skript oder andere Möglichkeiten habe, einen Ansatz zu benutzen.
public class Liste {
public int element;
public Liste nachfolger;
private int counter;
public Liste (int w) {
element = w;
nachfolger = null;
}
public void hinzufuegen (int w) {
this.counter++; // wird immer aufgerufen, daher hier definiert
if (nachfolger == null)
nachfolger = new Liste(w);
else
nachfolger.hinzufuegen(w);
}
public void entfernen () {
if (nachfolger == null){
nachfolger=null;
else
nachfolger.entfernen();
}
public int länge() {
int l=0;
for(int i=0;i<=this.counter;i++) {
l +=1;
}
return l;
}
public String toString() {
return " " + element + "," + nachfolger ;
}
public int summe() {
int sum=0;
for (int i=0;i<=this.counter;i++) {
sum += nachfolger.element;
}
return sum;
}
public void addiere (int z) {
for (int i=0;i<=this.counter;i++) {
element += z;
};
}
}
Java:
public class ListeTester {
public static void main(String[] args) {
Liste x = new Liste(3);
x.hinzufuegen(5);
x.hinzufuegen(4);
x.hinzufuegen(7);
}
}
Die for-Schleife bietet sich an, wenn du indexbasiert auf die Elemente zugreifen kannst. Hier würde ich einen rekursiven Ansatz vorschlagen. Wie könnte man die "Länge" der Liste rekursiv berechnen?
Tipp: Verzweige mit der Bedingung nachfolger == null
public class Liste {
public int element;
public Liste nachfolger;
private int counter;
public Liste (int w) {
element = w;
nachfolger = null;
}
public void hinzufuegen (int w) {
this.counter++; // wird immer aufgerufen, daher hier definiert
if (nachfolger == null)
nachfolger = new Liste(w);
else
nachfolger.hinzufuegen(w);
}
public void entfernen () {
if (nachfolger == null){
nachfolger=null;
else
nachfolger.entfernen();
}
public int länge() {
int l=0;
for(int i=0;i<=this.counter;i++) {
l +=1;
}
return l;
}
public String toString() {
return " " + element + "," + nachfolger ;
}
public int summe() {
int sum=0;
for (int i=0;i<=this.counter;i++) {
sum += nachfolger.element;
}
return sum;
}
public void addiere (int z) {
for (int i=0;i<=this.counter;i++) {
element += z;
};
}
}
Die for-Schleife bietet sich an, wenn du indexbasiert auf die Elemente zugreifen kannst. Hier würde ich einen rekursiven Ansatz vorschlagen. Wie könnte man die "Länge" der Liste rekursiv berechnen?
Tipp: Verzweige mit der Bedingung nachfolger == null