Example #1
0
Automate* creerAutomate(char* alphabet)
{
	Automate* a = (Automate*)malloc(sizeof(Automate));
	if(NULL != a)
	{
		/* Allocation de la liste des initiaux */
		a->initiaux = creerListe();
		if(NULL != a->initiaux)
		{
			/* Allocation de la liste des terminaux */
			a->terminaux = creerListe();
			if(NULL != a->terminaux)
			{
				/* Allocation de la liste des états */
				a->etats = creerListe();
				if(NULL == a->etats)
				{
					perror("Erreur lors de la création de la liste des états\n");
					a->initiaux = libererListe(a->initiaux);
					a->terminaux = libererListe(a->terminaux);
					free(a);
					a = NULL;
				}
				/* Ajout de l'alphabet terminal */
				if(alphabet != NULL)
					a->alphabet = strdup(alphabet);
				else
				{
					a->alphabet = (char*)calloc(TAILLEMAX, sizeof(char));
					if(NULL == a->alphabet)
					{
						perror("Erreur lors de l'allocation du tableau de l'alphabet\n");
						a->initiaux = libererListe(a->initiaux);
						a->terminaux = libererListe(a->terminaux);
						a->etats = libererListeComplete(a->etats);
						free(a);
						a = NULL;
					}
				}
			}
			else
			{
				perror("Erreur lors de la création de la liste des états terminaux\n");
				a->initiaux = libererListe(a->initiaux);
				free(a);
				a = NULL;
			}
		}
		else
		{
			perror("Erreur lors de la création de la liste des états initiaux\n");
			free(a);
			a = NULL;
		}
	}
	else
		perror("Erreur lors de l'allocation de l'automate\n");
	
	return a;
}
Example #2
0
int main(){
    liste* l = creerListe();

    int a = 1;

    addElementFirst(&l, &a, sizeof(int));
    a++;
    addElementFirst(&l, &a, sizeof(int));
    a++;
    //addElementLast(l, &a, sizeof(int));

    removeLastElement(l);
    visuListe(l, (void(*)(void *))visuElement);

    freeListe(&l);

    return 0;
}
Example #3
0
int main(){
    liste l = creerListe();
    remplissageListe(&(l->end));

    cell p1 = l->deb, p2 = NULL, p3 = NULL, p4 = NULL, p5 = NULL;
    element tab[5];

    while(p1 !=NULL){
	p2 = p1->suiv;
	tab[0] = p1->el;
	while(p2!=NULL){
	    if(isPerm(p1->el, p2->el)){
		tab[1] = p2->el;
		p3 = p2->suiv;
		while(p3!=NULL){
		    if(isPermTab(p3->el, tab, 2)){
			tab[2] = p3->el;
			p4 = p3->suiv;
			while(p4!=NULL){
			    if(isPermTab(p4->el, tab, 3)){
				tab[3] = p4->el;
				p5 = p4->suiv;
				while(p5!=NULL){
				    if(isPermTab(p5->el, tab, 4)){
					printf("%d\n", (p1->el.nbre + p2->el.nbre + p3->el.nbre + p4->el.nbre + p5->el.nbre));
					return 0;
				    }
				    p5 = p5->suiv;
				}
			    }
			    p4 = p4->suiv;
			}
		    }
		    p3 = p3->suiv;
		}
	    }
	    p2 = p2->suiv;
	}
	p1 = p1->suiv;
    }

    return 0;
}
 Polynome* creerPolynome () {
     return creerListe (DECROISSANT, NULL, comparerMonome);
 }
Example #5
0
 Pile* creerPile(){
     return creerListe();
 }