public void insere(int valor) {
int h = 0;
raiz = insere(raiz, valor, h); // adicionar referencia ficaria ref h
}
private No insere(No p, int valor, int h) {//adicionar referencia ficaria ref int h
if (p == null) {
p = new No(valor);
h = 1;
} else if (valor < p.dado) { // esquerda
p.esq = insere(p.esq, valor, h); // adicionar referencia ficaria ref h
if (h == 1) {
switch (p.bal) {
case 1:
p.bal = 0;
h = 0;
break;
case 0:
p.bal = -1;
break;
case -1:
System.out.println(h + "esquerda");
p = caso1(p);
h = 0;
break;
}
}
} else if (valor > p.dado) { // direita
p.dir = insere(p.dir, valor, h);// adicionar ref ficaria ref h
if (h == 1) {
switch (p.bal) {
case -1:
p.bal = 0;
h = 0;
break;
case 0:
p.bal = 1;
break;
case 1:
System.out.println(h + "direita");
p = caso2(p);
h = 0;
break;
}
}
}
return p;
}
Usando o ref(c#) em java
7 Respostas
Infelizmente não, bem-vindo à Java!
Mas em vez de int, vc pode passar Integer, ai se vc mudar o valor dentro do método já serve.
OBS: Estou falando isso pela teoria, não testei na prática pra ver se funciona. 
Acabei de testar e vi que o que eu disse acima, infelizmente, não funciona.
Infelizmente não, bem-vindo à Java!Mas em vez de int, vc pode passar Integer, ai se vc mudar o valor dentro do método já serve.
OBS: Estou falando isso pela teoria, não testei na prática pra ver se funciona.
bom o que vale é a intenção ainda aguardo algum meio para o ref
C, ponteiros e JNI(Caso queira alguma coisa com o Java). 
No Java a passagem de parametros é por valor sempre! (Ou não…só os idiotas tem certeza(professor Girafalez)).
Poderia apenas se o Integer não fosse imutável. Mas ele não possui sets.
O que ele tem que fazer é criar uma classe similar, mutável:
public class IntRef {
public int valor;
}
Use IntRef no lugar de int para o h. A classe em si é passada por referência. E então altere o valor dentro dela.
Poderia apenas se o Integer não fosse imutável. Mas ele não possui sets.
O que ele tem que fazer é criar uma classe similar, mutável:
public class IntRef {
public int valor;
}
Use IntRef no lugar de int para o h. A classe em si é passada por referência. E então altere o valor dentro dela.
Desculpa mais eu não entendi direito o que é para fazer pode me explicar melhor?
opa gente já resolvi o meu problema adicionando um getH() e 1 setH() agora a arvore esta incluindo novos nos perfeitamente vlw =D