Árvore Binária
ESTRUTURA DE DADOS II
ÁRVORE BINÁRIA
Gustavo Caldas -‐ 2008102892
FORTALEZA 2011
public class ArvoreBinaria {
/* Atributo de classe: variável que possui referência para o nó raiz da arvore binária */ private No raiz;
/* Método para inserção ordenada na árvore binária */ public void inserOrd(int mat, String nome){ if (raiz == null){ raiz = new No(mat, nome);
}else{
insere(mat, nome, raiz);
}
}
/* Metodo recursivo */ private void insere(int mat, String nome, No no){ if (mat == no.getMatricula())
System.out.println("Matrícula " + no.getMatricula()+
" já cadastrada para " + no.getNome());
}
if (mat < no.getMatricula()){ if (no.getFilhoEsq() == null){
No no_aux = new No(mat,nome); no.setFilhoEsq(no_aux); no_aux.setPai(no);
}else{
insere(mat, nome, no.getFilhoEsq());
}
}else{ if (mat > no.getMatricula()){ if (no.getFilhoDir() == null){
No no_aux = new No(mat,nome); no.setFilhoDir(no_aux); no_aux.setPai(no);
}else{
insere(mat, nome, no.getFilhoDir());
}
}
}
/* Metodo para pesquisar o nome de um Aluno pela matrícula */ public String pesquisaAluno(int mat){ if (getRaiz() == null) return "Não existe árvore"; else{ if (pesquisaAluno(mat,raiz) != null) return pesquisaAluno(mat,raiz).getNome(); else return "Não existe aluno com a matrícula " + mat;
}
} private No pesquisaAluno (int mat, No no){ if (mat == no.getMatricula()) return no; else{ if (mat < no.getMatricula()){ if (no.getFilhoEsq() == null){ return null;
}else
return pesquisaAluno(mat, no.getFilhoEsq());
}else{
if (mat > no.getMatricula()){ if (no.getFilhoDir() == null){ return null;
}else
return pesquisaAluno(mat, no.getFilhoDir());
}
else{ return null;
}
}
}
}
public void removeAluno(int mat){
//código Java faltando - apagar o return abaixo!!!
}
/* Métodos de acesso */ private No getRaiz(){ return raiz;
}
/*