Ejemplo n.º 1
0
Arbin union0(Arbin a1,Arbin a2)
{
    Liste l1=al(a1);
    Liste l2=al(a2);
    Liste l=concat(l1,l2);
    Arbin a=la(l);
    freeListe(l);
    freeListe(l1);
    freeListe(l2);
    return a;
}
Ejemplo n.º 2
0
int main()
{
    Liste l1=Exemple1();
    Liste l2=Exemple2();
    printf("Liste1 de 7 elements :\n");
    afficherliste(l1);
    printf("Liste2 de 6 elements :\n");
    afficherliste(l2);


    Arbin a1=la(l1);
    Arbin a2=la(l2);
    printf("Affichage de l'arbre1\n");
    afficherArbre(a1);
    printf("Affichage de l'arbre2\n");
    afficherArbre(a2);
    printf("\n");

    Liste l3=al(a1);
    printf("al sur arbre1 :\n");
    afficherliste(l3);

    Arbin u0=union0(a1,a2);
    Arbin u1=union1(a1,a2);

    printf("Affichage de union0 :\n");
    afficherArbre(u0);

    printf("Affichage de union1 :\n");
    afficherArbre(u1);

    printf("Oter le minimum de l'arbre1\n");
    Arbin o=om(a1);
    afficherArbre(o);

    Arbin i=ins(a1,42);
    printf("Insertion de 42 dans l'arbre1\n");
    afficherArbre(i);

    freeListe(l1);
    freeListe(l2);
    freeListe(l3);

    freeArbre(a1);
    freeArbre(a2);
    freeArbre(u0);
    freeArbre(u1);
    freeArbre(o);
    freeArbre(i);


    return 0;
}
Ejemplo n.º 3
0
//Fonction qui gère la fin du programme (provoqué par un signal ou non), qui désalloue les ressources restantes
void handler(int signum)
{
	Liste l=l_handler;
	ListeElem tmp=l->t;
	while(tmp!=NULL)
	{
		kill(tmp->val.pid,9);
		free(tmp->val.commande);
		tmp=tmp->suiv;
	}
	freeListe(l);

	if(!estExit(input_handler))printf("\n");
	free(input_handler);
	exit(0);
}
Ejemplo n.º 4
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;
}
Ejemplo n.º 5
0
void selectionList_sort( int *t, int size ) {
	int i = 0;
	List *head = calloc(1, sizeof(List));
	List *indice;
	head = copyTabInList(t, size, head);
	indice = head;
	indice = findMin(indice);
	t[i]  = indice ->valeur;

	while(indice->suiv->suiv != NULL) {
		indice->suiv = findMin(indice->suiv);
		t[i] = indice->valeur;
		indice = indice->suiv;
		++i;
	}
	
	t[i] = indice->valeur;
	head =findMin(head);
	freeListe(head);
}
Ejemplo n.º 6
0
void freeListe( List *list ) {
	if(list->suiv != NULL)
		freeListe(list->suiv);
	free(list);
}
Ejemplo n.º 7
0
int main() {
    /* Création d'une liste */
    
    t_ptr_liste liste = creationListe();
    
    /* Affichage d'une liste */
    
    afficher(liste);

    /* Longeur de la liste */
    
    printf("Longeur de la liste = %d\n", sizeList(liste));
    
    /* Copie de la liste */

    t_ptr_liste newList = copyList(liste);
    printf("New Liste = ");
    afficher(newList);
    
    /* Recherche d'une élément dans une liste */
        
    printf("Pos de 4 = %d\n", findListe(liste, 4));
    
    /* Suppression d'un élément d'un liste */
    
    printf("Suppression de tous les 5 :\n");
    liste = delElem(liste, 5);
    afficher(liste);
    
    /* Insertion dans une liste ordonnée */
    
    t_ptr_liste listeOrd = creationListeOrdonne();
    afficher(listeOrd);
    
    /* Inverse d'une liste */
    
    printf("Inversion de la liste ordonnée :\n");
    listeOrd = inversionListeADT(listeOrd);
    afficher(listeOrd);

    /* Vérification si c'est un palindrome */
    t_ptr_liste palin = NULL;
    palin = ajout_liste(palin, 1);
    palin = ajout_liste(palin, 2);
    palin = ajout_liste(palin, 3);
    palin = ajout_liste(palin, 4);
    palin = ajout_liste(palin, 3);
    palin = ajout_liste(palin, 2);
    palin = ajout_liste(palin, 1);

    printf("Palin :\n");
    afficher(palin);
    printf("La liste palin est un paladrome ? ");
    (isPalindrome(palin) ? printf("Oui\n") : printf("Non\n"));

    t_ptr_liste paPalin = NULL;
    paPalin = ajout_liste(paPalin, 1);
    paPalin = ajout_liste(paPalin, 2);
    paPalin = ajout_liste(paPalin, 3);
    paPalin = ajout_liste(paPalin, 4);
    printf("Pas Palin :\n");
    afficher(paPalin);
    printf("La liste papalin est un paladrome ? ");
    (isPalindrome(paPalin) ? printf("Oui\n") : printf("Non\n"));

    /* Vérification que la liste est une suite de Fibonacci */
    t_ptr_liste fibList = NULL;
    fibList = ajout_liste(fibList, 3);
    fibList = ajout_liste(fibList, 2);
    fibList = ajout_liste(fibList, 1);
    fibList = ajout_liste(fibList, 1);
    fibList = ajout_liste(fibList, 0);
    printf("fibList :\n");
    afficher(fibList);
    printf("La liste fibList est une liste de Fibonacci ? ");
    (isFibonnacciList(fibList) ? printf("Oui\n") : printf("Non\n"));

    /* Fusion de deux liste triée */
    printf("Fusion de listeOrd et de paPalin\n");
    t_ptr_liste testFusion = fusionList(listeOrd, paPalin);
    afficher(testFusion);

    printf("Fusion de listeOrd et de paPalin (sans répétition)\n");
    testFusion = fusionListNoRepeat(listeOrd, paPalin);
    afficher(testFusion);

    /* Liste des sommes préfixe */
    t_ptr_liste listeSomme = NULL;
    listeSomme = ajout_liste(listeSomme, 3);
    listeSomme = ajout_liste(listeSomme, 5);
    listeSomme = ajout_liste(listeSomme, 4);
    listeSomme = ajout_liste(listeSomme, 2);
    listeSomme = ajout_liste(listeSomme, 1);
    listeSomme = sommeList(listeSomme);
    printf("La liste des sommes préfixe donne : \n");
    afficher(listeSomme);

    /* Libération de la mémoire */
    freeListe(listeOrd);
    freeListe(liste);
    freeListe(newList);
    freeListe(palin);
    freeListe(paPalin);
    freeListe(fibList);
    freeListe(testFusion);
    freeListe(listeSomme);

    return 0;
}