-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathArvore-Simples.java
42 lines (38 loc) · 1.54 KB
/
Arvore-Simples.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
public class Arvore {
private Elemento ele;
private Arvore esquerda;
private Arvore direita;
public Arvore(Elemento ele) {
this.ele = ele;
this.direita = null;
this.esquerda = null;
System.out.println("Criei a arvore com o elemento: " + ele.getValor());
}
//precisamos criar um elemento e saber se ela está null.
public boolean isEmpty() {
return (this.ele == null);
}
//verifica se a arvore está vazia
public void adicionar (Elemento novo){
if (isEmpty()){ //se a arvore já tiver elemento vamos criar uma nova arvore
ele = novo;
}else {
Arvore novaArvore= new Arvore(novo); //estará a direita ou a esquerda
if(novo.getValor()< this.ele.getValor()) { { //se o novo valor for menor que o elemento da arvore
if(this.esquerda==null) {//sou uma folha
this.esquerda=novaArvore;
System.out.println("O elemento : "+novo.getValor()+" adicionado à esquerda do valor :"+this.ele.getValor());
}else {
this.esquerda.adicionar(novo);
}
}else if(novo.getValor()>this.ele.getValor()) {
if (this.direita == null) {
this.direita = novaArvore;
System.out.println("O elemento :" + novo.getValor() + " adicionado à direita do valor " + this.ele.getValor());
} else {
this.direita.adicionar(novo);
}
}
}
}
}