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: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("");
}
}
}
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();
}
}