Impressão Endentada

Gostária de ajuda para editar o metodo Identa para que o mesmo tenha um parâmetro adicional (o nível de endentação). Ex: Se o nível for 1, 5 espaços antes do caracter, se for 2, 10 espaços antes do caracter, se for 3, 15 espaços antes do caracter e assim por diante.

segue o código:

[code]public class Arvore {
public Arvore esq;
public Object info;
public Arvore dir;

public static boolean estaCheio(Arvore a) {
	return a.esq != null && a.dir != null;
}
public static Arvore insere(Arvore pai, String onde, Object elemento) {
	if (estaCheio(pai)) {
		System.out.println("O nó escolhido está cheio");
		return null;
	} else {
		Arvore item = new Arvore();
		item.info = elemento;
		if (onde.equals("esq")) {
			if (pai.esq == null) pai.esq = item;
			else System.out.println("A perna escolhida já está preenchida");
		}
		if (onde.equals("dir")) {
			if (pai.dir == null) pai.dir = item;
			else System.out.println("A perna escolhida já está preenchida");
		}
		return item;
	}
}
public void escreve(){
	System.out.print(info.toString());
	if(esq!=null){
		System.out.print("{");
		esq.escreve();
		System.out.print("{");
	}
	if(dir!=null){
		System.out.print("{");
		dir.escreve();
		System.out.print("}");
	}
}
public void Identa(){
	System.out.println();
	System.out.print(info.toString());
	if(esq!=null){
		System.out.print("");
		esq.Identa();
		System.out.print("");
	}
	if(dir!=null){
		System.out.print("");
		dir.Identa();
		System.out.print("");
	}
}

}[/code]

public class TesteArvore { public static void main(String args[]){ Arvore a = new Arvore(); a.info = "A"; Arvore b = new Arvore(); b.info = "B"; Arvore c = new Arvore(); c.info = "C"; Arvore d = new Arvore(); d.info = "D"; Arvore e = new Arvore(); e.info = "E"; Arvore f = new Arvore(); f.info = "F"; Arvore g = new Arvore(); g.info = "G"; b = Arvore.insere(a, "esq", "B"); c = Arvore.insere(a, "dir", "C"); d = Arvore.insere(b, "esq", "D"); e = Arvore.insere(b, "dir", "E"); f = Arvore.insere(c, "esq", "F"); g = Arvore.insere(c, "dir", "G"); a.escreve(); a.Identa(); } }

complexo de entender esse código, mas acho que peguei.

talvez um while resolva

pai = arvore.pai();
while (pai != null)
{
system.out.print(" ");
pai=pai.pai();
}

mas para isso a arvore não teria que ter só os filhos dela esq e dir, ela teria que guardar o pai dela.

Assim na hora de printar vc da x espacos pra cada pai até nao ter mais pai nenhum. é isso q o meu while tenta fazer

espero ter ajudado

[quote=heroijapa]complexo de entender esse código, mas acho que peguei.

talvez um while resolva

pai = arvore.pai();
while (pai != null)
{
system.out.print(" ");
pai=pai.pai();
}

mas para isso a arvore não teria que ter só os filhos dela esq e dir, ela teria que guardar o pai dela.

Assim na hora de printar vc da x espacos pra cada pai até nao ter mais pai nenhum. é isso q o meu while tenta fazer

espero ter ajudado[/quote]
Alguem poderia me ajudar a implementar esse código ao de cima, pois estou boiando nessa questão deve ser trauma de já estar com uma semana tentando e sem sucesso.