[CODE lang="java" title="keine weiteren Attribute dürfen eingefügt werden"]public class PenguinRegister {
private Penguin penguin;
private PenguinRegister[] children = new PenguinRegister[26];[/CODE]
[CODE lang="java" title="Methode zum einfügen in das Register"]public PenguinRegister put (String name, Penguin penguin) {
int temp = -1;
PenguinRegister knotenToPenguin = this;
for(int i = 0; i < name.length(); i++) {
temp = name.charAt(i) - 65;
if(knotenToPenguin.getChildren()[temp] == null) { //befindet sich kein PenguinRegister an dieser Stelle, wird ein neues Register generiert und gespeichert
knotenToPenguin.getChildren()[temp] = new PenguinRegister();
knotenToPenguin = knotenToPenguin.getChildren()[temp];
}
else { //hier wird nur das PenguinRegister gespeichert, da der Knoten bereits existiert
knotenToPenguin = knotenToPenguin.getChildren()[temp];
}
}
knotenToPenguin.setPenguin(penguin); //der letzte Knoten wird mit dem Penguin belegt
return knotenToPenguin; //der mit dem Penguin belegter Knoten wird zurückgegeben
}[/CODE]
nun muss ich eine rekursive Methode int size() einfügen um die Anzahl aller gespeicherter Pinguine aufzuzählen.
Meine Idee war es einfach alle Register durchzugehen und dort zu schaun, ob ein Penguin gespeichert ist und wenn ja, die Zahl der Pinguine zu erhöhen.(ziemlich ineffizient aber es macht den job )
[CODE lang="java" title="bisheriger Ansatz"]public int size() {
PenguinRegister knotenToPenguin = this;
for(int i = 0; i < 26; i++) {
if (knotenToPenguin.getChildren() != null) {
knotenToPenguin.getChildren().size();
}
//TO-DO:
}
return /**/;
}[/CODE]
Mein Problem liegt jedoch darin, dass ich nicht weiß wie ich die Durchläufe bzw. die Anzahl der Pinguine, die != null sind zählen soll, ohne in der Klasse PenguinRegister selbst einen "Zähler" zu nitialisieren (was ich laut Aufgabenstellung nicht machen darf).
Falls mir jemand helfen kann würde ich mich sehr freuen ^^
private Penguin penguin;
private PenguinRegister[] children = new PenguinRegister[26];[/CODE]
[CODE lang="java" title="Methode zum einfügen in das Register"]public PenguinRegister put (String name, Penguin penguin) {
int temp = -1;
PenguinRegister knotenToPenguin = this;
for(int i = 0; i < name.length(); i++) {
temp = name.charAt(i) - 65;
if(knotenToPenguin.getChildren()[temp] == null) { //befindet sich kein PenguinRegister an dieser Stelle, wird ein neues Register generiert und gespeichert
knotenToPenguin.getChildren()[temp] = new PenguinRegister();
knotenToPenguin = knotenToPenguin.getChildren()[temp];
}
else { //hier wird nur das PenguinRegister gespeichert, da der Knoten bereits existiert
knotenToPenguin = knotenToPenguin.getChildren()[temp];
}
}
knotenToPenguin.setPenguin(penguin); //der letzte Knoten wird mit dem Penguin belegt
return knotenToPenguin; //der mit dem Penguin belegter Knoten wird zurückgegeben
}[/CODE]
nun muss ich eine rekursive Methode int size() einfügen um die Anzahl aller gespeicherter Pinguine aufzuzählen.
Meine Idee war es einfach alle Register durchzugehen und dort zu schaun, ob ein Penguin gespeichert ist und wenn ja, die Zahl der Pinguine zu erhöhen.(ziemlich ineffizient aber es macht den job )
[CODE lang="java" title="bisheriger Ansatz"]public int size() {
PenguinRegister knotenToPenguin = this;
for(int i = 0; i < 26; i++) {
if (knotenToPenguin.getChildren() != null) {
knotenToPenguin.getChildren().size();
}
//TO-DO:
}
return /**/;
}[/CODE]
Mein Problem liegt jedoch darin, dass ich nicht weiß wie ich die Durchläufe bzw. die Anzahl der Pinguine, die != null sind zählen soll, ohne in der Klasse PenguinRegister selbst einen "Zähler" zu nitialisieren (was ich laut Aufgabenstellung nicht machen darf).
Falls mir jemand helfen kann würde ich mich sehr freuen ^^
Zuletzt bearbeitet: