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; }
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; }
//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); }
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; }
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); }
void freeListe( List *list ) { if(list->suiv != NULL) freeListe(list->suiv); free(list); }
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; }