Ein Processing Code mit dem der binäre Baum durchlaufen wird, bis die gewünschte Beschriftung erreicht wird:
int links=0;
int rechts=0;
int merkelinks;
int merkerechts;
void setup() {
size(screenWidth, screenHeight);
baum(0,1,1,0,0,22,7);
baum(0,1,1,0,0,87,32);
println("Linksdrehungen: ", merkelinks);
println("Rechtsdrehungen: ", merkerechts);
}
void draw() {
background(0,0,255);
}
void baum(int lo, int lu, int ro, int ru, int level, int b1, int b2){
if (level > 19) {
level=level-1;
return;
}
if ((ro==b1) && (ru==b2)){
//println("fertig");
//println("links: ",links-1," rechts: ",rechts);
merkelinks=merkelinks+links-1;
merkerechts=merkerechts+rechts;
level=level-1;
return;
}
//links
level=level+1;
links=links+1;
baum(lo,lu,lo+ro,lu+ru,level,b1,b2);
links=links-1;
rechts=rechts+1;
//rechts
baum(ro+lo,ru+lu,ro,ru,level,b1,b2);
rechts=rechts-1;
return;
}
int links=0;
int rechts=0;
int merkelinks;
int merkerechts;
void setup() {
size(screenWidth, screenHeight);
baum(0,1,1,0,0,22,7);
baum(0,1,1,0,0,87,32);
println("Linksdrehungen: ", merkelinks);
println("Rechtsdrehungen: ", merkerechts);
}
void draw() {
background(0,0,255);
}
void baum(int lo, int lu, int ro, int ru, int level, int b1, int b2){
if (level > 19) {
level=level-1;
return;
}
if ((ro==b1) && (ru==b2)){
//println("fertig");
//println("links: ",links-1," rechts: ",rechts);
merkelinks=merkelinks+links-1;
merkerechts=merkerechts+rechts;
level=level-1;
return;
}
//links
level=level+1;
links=links+1;
baum(lo,lu,lo+ro,lu+ru,level,b1,b2);
links=links-1;
rechts=rechts+1;
//rechts
baum(ro+lo,ru+lu,ro,ru,level,b1,b2);
rechts=rechts-1;
return;
}