/* un petit exemple d'utilisation */
int main(int argc, char **argv)
{ list_item *ma_liste;
  list_item *vlist_move;

  /* initialise la liste comme une liste vide (pas d'elements) */
  ma_liste = NULL;

  /* on rajoute la valeur 4 au debut de la liste */
  ma_liste = inserer_debut(ma_liste, 4);
  /* on rajoute la valeur 3 au debut de la liste */
  ma_liste = inserer_debut(ma_liste, 3);
  /* on rajoute la valeur 44 a la fin de la liste */
  ma_liste = inserer_fin(ma_liste, 44);
  /* on rajoute la valeur 5 a la fin de la liste */
  ma_liste = inserer_fin(ma_liste, 5);
  /* on supprime la valeur 44 de la liste */
  ma_liste = supprimer(ma_liste, 44);

  /* on parcours la liste pour en afficher le contenu */
  for(vlist_move=ma_liste;vlist_move!=NULL;vlist_move=vlist_move->next)
  {
    printf("valeur %d\n",vlist_move->val);
  }

  return(0);
}
Exemple #2
0
void * creation_trie_thread(void * args){
  char * fichier;
  TrieHybride *t = NULL;

  pthread_mutex_lock(&mutex_fics);
  while((fichier=(char *)supprimer_debut(fics))){
    pthread_mutex_unlock(&mutex_fics);
    t=lire_fichier_th(fichier,t);
    pthread_mutex_lock(&mutex_tries);
    inserer_debut(tries,t);
    sem_post(&sem);
    pthread_mutex_unlock(&mutex_tries);
    t=NULL;
    free(fichier);
    pthread_mutex_lock(&mutex_fics);
  }
  pthread_mutex_unlock(&mutex_fics);
  return NULL;
}
Exemple #3
0
void * fusion_thread(void * args){
  int nbfics=*((int *)args);
  int i=1;
  TrieHybride *t=NULL;
  TrieHybride *t2 =NULL;
  sem_wait(&sem);
  pthread_mutex_lock(&mutex_tries);
  t=supprimer_debut(tries);
  pthread_mutex_unlock(&mutex_tries);

  while(i<nbfics){
    sem_wait(&sem);
    i++;
    pthread_mutex_lock(&mutex_tries);
    t2=supprimer_debut(tries);
    pthread_mutex_unlock(&mutex_tries);
    t=fusion_trie_hybride(t,t2);
    free_trie_hybride(t2);
  }
  inserer_debut(tries,t);
  pthread_cond_signal(&cond);
  return NULL;
}