Also wir sollen das Knobel Spiel "Die Türme von Hanoi" programmieren. Dazu sollen wir einmal eine Datenstruktur und einen rekursiven Algorithmus entwickeln. Die Datenstruktur habe ich fertig:
Jedoch bin ich mehr als verwirrt wie ich mit dem Algorithmus anfangen soll
Hier ist die Aufgabenstellung für den Algorithmus:

Java:
public class HanoiTurm{
// jede Scheibe wird durch einen String dargestellt
// je laenger ein String, desto groesser die Scheibe
// in values werden somit die Scheiben abgelegt
private String[] values;
// position gibt die Position der obersten Scheibe an
private int position;
/**
* Konstruktor (keine Scheibe vorhanden, Stabgroesse ist 1)
**/
public HanoiTurm(){
position = -1;
values = new String[1];
}
/**
* Konstruktor (keine Scheibe vorhanden)
* @param groesse gibt die Groesse des Stabes an (und somit
* wie viele Scheiben maximal auf diesen gelegt werden koennen)
**/
public HanoiTurm(int groesse){
position = -1;
values = new String[groesse];
}
/**
* Gibt die maximale Anzahl an Scheiben auf dem Stab zurueck.
* @return die max. Anzahl an Scheiben
**/
public int maxSize(){
return values.length;
}
public String top() {
if(values[position] != null) {
return values[position];
}else {
System.out.println("Zugriff auf leeren Stab");
}
return "null";
}
public void pop() {
if(values[position] != null) {
values[position] = null;
position -= 1;
}else {
System.out.println("Zugriff auf leeren Stab");
}
}
public void push(String input) {
if(position+1 > maxSize()) {
System.out.println("Maximale Anzahl an Scheiben erreicht");
}else if((position+1 <= maxSize())&&(values[position].length() < input.length())) {
System.out.println("Kleinere Scheibe vorhanden");
}else {
position++;
values[position] = input;
}
}
public int size() {
return (position+1);
}
}
Jedoch bin ich mehr als verwirrt wie ich mit dem Algorithmus anfangen soll
Hier ist die Aufgabenstellung für den Algorithmus:
