Ejemplo n.º 1
0
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;
	
}
Ejemplo n.º 2
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;   
}
Ejemplo n.º 3
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)
}