Programa desarrollado en el lenguaje c++, muestra el funcionameinto de la estructura de datos tipo arbol AVL.
aqui les dejamos la parte importante del codigo.
inserta_avl(nodo *&raiz,int dato) { nodo *q,*r,*x; if(raiz != NULL) { if(dato < raiz->inf) { raiz->inserta_avl(raiz -> izq,dato); if(cen==1) { switch(raiz->fe) { case 1:raiz->fe=0; cen=0; break; case 0:raiz->fe=-1; break; case -1:q=raiz->izq; if(q->fe<=0) { //rotacion I.I. raiz->izq=q->der; q->der=raiz; raiz->fe=0; raiz=q; } else { //rotacion I.D. r=q->der; raiz->izq=r->der; r->der=raiz; q->der=r->izq; r->izq=q; if(r->fe==-1) { raiz->fe=1; } else { raiz->fe=0; } if(r->fe==1) { q->fe=-1; } else { q->fe=0; } raiz=r; } raiz->fe=0; cen=0; break; } } } else { if(dato > raiz->inf) { raiz->inserta_avl(raiz->der,dato); if(cen==1) { switch(raiz->fe) { case -1:raiz->fe=0; cen=0; break; case 0:raiz->fe=1; break; case 1:q=raiz->der; if(q->fe>=0) { //rotacion D.D. raiz->der=q->izq; q->izq=raiz; raiz->fe=0; raiz=q; } else { //rotacion D.I. r=q->izq; raiz->der=r->izq; r->izq=raiz; q->izq=r->der; r->der=q; if(r->fe==1) { raiz->fe=-1; } else { raiz->fe=0; } if(r->fe==-1) { q->fe=1; } else { q->fe=0; } raiz=r; } raiz->fe=0; cen=0; break; } } } else { clrscr(); gotoxy(25,15);cout<<"La clave"<< raiz-> inf<<" ya existe"; getch(); } } } else { raiz=new(nodo); raiz->inf=dato; raiz->izq=NULL; raiz->der=NULL; raiz->fe=0; cen=1; } return (raiz); }
Si gustan todo el programa, pueden dejarme un comentario y se los enviare en el tiempo mas corto posible....gracias..!!
0 Responses So Far: