int main(){ int i; Dicbin a=vacio(); do{ scanf("%d",&i); printf("\n"); if(i!=0) a=insord(i,a); puts("-------------------------"); }while(i); inorder(a); puts("-------------------------"); do{ scanf("%d",&i); printf("\n"); if(i!=0) a=borrar(i,a); inorder(a); puts("-------------------------"); }while(i); return 0; }
int main(){ int i; Dicbin a=vacio(); do{ scanf("%d",&i); if(i==0){break;} a=insord(i,a); puts("...."); inorder(a); printf("\n\nLa altura del arbol es: %d", altura(a)); printf("\n\nEl factor de balanceo del arbol es: %d" , factbal(a)); if(esavl(a)){ printf("\n\nEl arbol es AVL"); } else{ printf("\n\nEl arbol NO es AVL"); printf("\n\nRotando el arbol...."); a=hazavl(a); printf("\n\nLa altura del arbol es: %d", altura(a)); printf("\n\nEl factor de balanceo del arbol es: %d" , factbal(a)); } }while(i); puts("**********"); a=hazavl(a); printf("\n\nLa altura del arbol final es: %d", altura(a)); printf("\n\nEl factor de balanceo del arbol es: %d" , factbal(a)); return 0; }
list insord(element e, list l) { list t; if(empty(l) || !isLess(head(l), e)){ t = cons(e, l); //se vuoto o se head<e //t->next = l; return t; } return cons(head(l), insord(e, tail(l)));//ricostruisco con head + insord(tail) }