Este es un ejemplo sencillo del libro de Sedgewick. Es un programa que dibuja H’s recursivas (una en el centro y una en cada punta de la H central) y usa la clase StdDraw que viene con el libro para dibujar. Es bastante fácil, StdDraw.line(x0, y0, x1, y1) es un método estático para dibujar una recta entre (x0, y0) y (x1, y1).
public class Htree { public static void draw(int n, double sz, double x, double y) { if (n == 0) return; double x0 = x - sz/2, x1 = x + sz/2; double y0 = y - sz/2, y1 = y + sz/2; StdDraw.line(x0,y, x1,y); StdDraw.line(x0, y0, x0, y1); StdDraw.line(x1, y0, x1, y1); draw(n-1, sz/2, x0, y1); draw(n-1, sz/2, x0, y0); draw(n-1, sz/2, x1, y1); draw(n-1, sz/2, x1, y0); } public static void main(String[] args) { int n = Integer.parseInt(args[0]); draw(n, .5, .5, .5); } }
N son los niveles de recursión (cuántas H’s arriba de H’s dibujamos). Este es el resultado con H = 5: