You are on page 1of 3
Anexo ‘Comparto la implementacion en java de los métodos necesarios para la construccidn de un Arbol AVL 1 public class ArbolAVE { 2 private NodoArbolAVL reiz; 3 4 public ArbolAVL (NodoArbolaVL raiz) { 5 this.raiz = raiz; 6 ot 7 8 © public NodoarholaVL obtenerRaiz () { 10 return raiz; 1} 42 buscar 13 public NodoArbolAVL busear(int d, NodoArbolAVL r){ 14 Af (raiz==nul1){ 15 return null, 16 Jelse if (r-dato==d) ( 7 return r; 18 jelse if(z-datosubAr dato) { 95 Af (subAr.hijoDerecho==null) { 96 aubAr..hijoDerecho=nuevo; 7 else{ 98 subAr .hijoDerecho=insertarAVL (nuevo, 99 subAr.hijoDerecho); 100 Af ( (obtenerFE (subAr -hijoDerecho) - 101 obtenezFE (subAr .nijoIzquierdo)--2)) ( 102 Af (nuevo. dato>subar -hijoDerecho dato) ( 103 otacionDerecha(subAr) 7 10a 105 cionDobleDerecha (subAr) ; 106 i 107 ) 108 ) 109 Jelse( 110 System.out.printin("Nodo Duplicado") + ain} 112 113. //actua alt 114 4€( (subAr hij oTzquierdo=-null) sé (subAr.hijoDerecho!=mull}) { 1s subAr.fe=subAr.hijoDerecho.fe+1; 116 jelse 117 4€( (subAr. hijoDerecho==null) & (subAr.hijoTzquierdo!=nulL)} { 118 subAr. fe=subAr. hi joTzquierdo. fe+1; 119 Jelse( 120 subAr .fe=Math max (obtenerFE (subAz .nijolzquierdo), 121 obtenerFE (subAr.hijoDerecho) ) +1; 122} 123. return nuevoPadre; 124} public void insertar(int a) { NodoArbolAVL nuevo= new NodoArbolAVL (d) + if (reiz~-nul) ( jelse{ vaizsinsertarAVL (nuevo, raiz); )

You might also like