Ejemplo n.º 1
0
Arbre unification(Arbre arbre)
{
    assert(arbre != NULL);
    //printf("\n %d %d",isUni(arbre),arbre->couleur);
    if(is_feuille(arbre))
        return arbre;

	if(isUni(arbre))
	{
		arbre->couleur = arbre->fils[NO]->couleur;
       // printf(" %d  ",arbre->couleur);
        freeArbre(&arbre->fils[NO]);
        freeArbre(&arbre->fils[NE]);
        freeArbre(&arbre->fils[SO]);
        freeArbre(&arbre->fils[SE]);
        return arbre;
    }
    else
    {
        unification(arbre->fils[NO]);
        unification(arbre->fils[NE]);
        unification(arbre->fils[SO]);
        unification(arbre->fils[SE]);
        return arbre;
    }


}
Ejemplo n.º 2
0
void main()
{
	input();
    printf("\nUNIFICATION ALGORITHM\n\n");
	
	if(strcmp(p[0].symb,p[1].symb))
		fail();
	if(p[0].num!=p[1].num)
		fail();
	//Unification
	unification();
	printf("%s",subst);
	getch();
}