case-1:{if(node.esquerda!=null){Inserir(node.esquerda,nome);}else{node.esquerda=newNO(nome);}}case1:{if(node.direita!=null){Inserir(node.direita,nome);}else{node.direita=newNO(nome);}}case0:System.out.println("O número já existe");}}}
Adaptei o código dessa forma, porém ele passou a ignorar a entrada dos nomes apartir do terceiro inserido, criando um problema na inserção dos nós e consequentemente na exclusão dos nós.
D
diego12
faltou os break;s
S
Sidmarin
Só percebi agora que postei CRTL V errado, mas mesmo com os breaks ele não adiciona mais de dois nomes. Em questão de impedir a inclusão de nomes iguais ele funcionou. :x
D
diego122 likes
Me desculpa, o compareTo não retorna -1, 0 ou 1, terá que usar os ifs:
importjava.lang.Math;publicclassArvore{staticNOraiz;publicstaticvoidInserir(NOnode,Stringnome){if(node==null){raiz=newNO(nome);}else{intcomparacao;comparacao=nome.compareTo(node.nome);if(comparacao<0){if(node.esquerda!=null){Inserir(node.esquerda,nome);}else{node.esquerda=newNO(nome);}}elseif(comparacao>0){if(node.direita!=null){Inserir(node.direita,nome);}else{node.direita=newNO(nome);}}elseif(comparacao==0)System.out.println("O número já existe "+nome);}}publicstaticvoidmain(String[]args){for(inti=0;i<10;i+=1){Inserir(raiz,""+(char)('A'+('Z'-'A')*Math.random()));}System.out.println(raiz);}}publicclassNO{NOesquerda;NOdireita;Stringnome;publicNO(Stringnome){this.nome=nome;}publicStringtoString(){Stringresultado="";if(esquerda!=null)resultado+=esquerda.toString();resultado+=nome+" ";if(direita!=null)resultado+=direita.toString();returnresultado;}}
S
Sidmarin
Agora sim meu parceiro, muito obrigado pela ajuda. Ajudou a mim e a vários estudantes do futuro que com certeza vão precisar desse apoio também. GG.