Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class ArbolBinario {
- class Nodo
- {
- int info;
- Nodo izq, der;
- }
- Nodo raiz;
- int cant;
- int altura;
- public ArbolBinario() {
- raiz=null;
- }
- public void insertar (int info) {
- if (!existe(info)) {
- Nodo nuevo;
- nuevo = new Nodo ();
- nuevo.info = info;
- nuevo.izq = null;
- nuevo.der = null;
- if (raiz == null)
- raiz = nuevo;
- else {
- Nodo anterior = null, reco;
- reco = raiz;
- while (reco != null) {
- anterior = reco;
- if (info < reco.info)
- reco = reco.izq;
- else
- reco = reco.der;
- }
- if (info < anterior.info)
- anterior.izq = nuevo;
- else
- anterior.der = nuevo;
- }
- }
- }
- public boolean existe(int info) {
- Nodo reco=raiz;
- while (reco!=null) {
- if (info==reco.info)
- return true;
- else
- if (info>reco.info)
- reco=reco.der;
- else
- reco=reco.izq;
- }
- return false;
- }
- private void imprimirEntre (Nodo reco) {
- if (reco != null) {
- imprimirEntre (reco.izq);
- System.out.print(reco.info + " ");
- imprimirEntre (reco.der);
- }
- return;
- }
- public void DescendingOrder() {
- DescendingOrder(this.raiz);
- }
- protected void DescendingOrder(Nodo reco) {
- if (reco != null) {
- DescendingOrder(reco.der);
- System.out.print(reco.info + " ");
- DescendingOrder(reco.izq);
- }
- }
- public void imprimirEntre () {
- imprimirEntre (raiz);
- System.out.println();
- }
- private void cantidad(Nodo reco) {
- if (reco!=null) {
- cant++;
- cantidad(reco.izq);
- cantidad(reco.der);
- }
- }
- public int cantidad() {
- cant=0;
- cantidad(raiz);
- return cant;
- }
- private void cantidadNodosHoja(Nodo reco) {
- if (reco!=null) {
- if (reco.izq==null && reco.der==null)
- cant++;
- cantidadNodosHoja(reco.izq);
- cantidadNodosHoja(reco.der);
- }
- }
- public int cantidadNodosHoja() {
- cant=0;
- cantidadNodosHoja(raiz);
- return cant;
- }
- private void imprimirEntreConNivel (Nodo reco,int nivel) {
- if (reco != null) {
- imprimirEntreConNivel (reco.izq,nivel+1);
- System.out.print(reco.info + " ("+nivel+") - ");
- imprimirEntreConNivel (reco.der,nivel+1);
- }
- }
- public void imprimirEntreConNivel () {
- imprimirEntreConNivel (raiz,1);
- System.out.println();
- }
- private void retornarAltura (Nodo reco,int nivel) {
- if (reco != null) {
- retornarAltura (reco.izq,nivel+1);
- if (nivel>altura)
- altura=nivel;
- retornarAltura (reco.der,nivel+1);
- }
- }
- public int retornarAltura () {
- altura=0;
- retornarAltura (raiz,1);
- return altura;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement