Example #1
0
int main ()
{
	int i;
	char *chaines[] = {"chaine1", "chaine2", "chaine3", "chaine4", "chaine5", "chaine6", "chaine7", "chaine8", "chaine9", "chaine10"}, *elementc;
	int vecteur[] = {1,2,3,4,5,6,7,8,9,10}, *elementi;
	Liste * liste1 = NULL; /* liste 1 est vide */
	Liste * liste2 = NULL; /* liste 2 est vide */

	/* Creation des listes */
	for (i=NB; i>0; i--){
		liste1 = insere_liste(liste1, chaines[i-1]);
		liste2 = insere_liste(liste2, &vecteur[i-1]);
	}

	affiche_liste(liste1, (void (*) (void *, char *)) affiche_char);
	affiche_liste(liste2, (void (*) (void *, char *)) affiche_int);

	/* Retrait des 5 premiers nombres */
	for (i=0; i<5; i++) {
		liste1 = retire_liste(liste1, (void *) &elementc);
		liste2 = retire_liste(liste2, (void *) &elementi);
		printf("Element %d retire de la liste d'entiers\n", *elementi);
		printf("Element %s retire de la liste de chaines\n", elementc);
	}

	affiche_liste(liste1, (void (*) (void *, char *)) affiche_char);
	affiche_liste(liste2, (void (*) (void *, char *)) affiche_int);

	return 0;
}
Example #2
0
int main(void) {
  ListeChainee maliste = LISTE_VIDE;
  type_el un_element = 3;
 
  printf("J'insere (en tete) "); affiche_el(un_element); putchar('\n');
  insere_entete(&maliste, un_element);
 
  printf("J'insere (en tete) 2, puis 1, 0 et -1.\n");
  insere_entete(&maliste, 2);
  insere_entete(&maliste, 1);
  insere_entete(&maliste, 0);
  insere_entete(&maliste, -1);
 
  printf("Voici la liste : \n\t");
  affiche_liste(maliste); putchar('\n');
 
  printf("Je supprime la tete de liste.\n");
  supprime_tete(&maliste);
  printf("Voici la liste : \n\t");
  affiche_liste(maliste); putchar('\n');
 
  printf("Je supprime le 4e element.\n");
  supprime_suivant(maliste->suite->suite);
  printf("Voici la liste : \n\t");
  affiche_liste(maliste); putchar('\n');
 
  printf("J'insere 156 en 3e position.\n");
  insere_apres(maliste->suite, 156);
  printf("Voici la liste : \n\t");
  affiche_liste(maliste); putchar('\n');
 
  printf("de taille %u.\n", taille(maliste));
 
  return 0;
}
Example #3
0
void afficher_bordure(S_Zsg *zone)
{
  int i;
  for(i= 0; i < zone->dim;i++){
    if (zone->B[i] != NULL) {
    printf("bordure de la couleur %d :",i);
    affiche_liste(&(zone->B[i]));
    }
  }
}
Example #4
0
void affiche_graphe(GRAPH_L_ADJ graph) {
    int i;

    for (i = 0; i < graph.nbSom; i++) {
        if (graph.succTab[i]) {
            printf("Successeurs de %d : ", i);
            affiche_liste(graph.succTab[i]);
        }
    }
    printf("\n");
}
Example #5
0
int sequence_aleatoire_imp(int **M, Grille *G, int dim, int aff){
  /* initialisation du tableau de couleurs dans la grille */
  int *tab = initialise_tab_couleur(G->nbcl);
  nb_couleur_initiales(&tab,M,G->dim);
  int nbCoups = 0;
  srand(time(NULL));
  
  /* On definit Zsg, la zone contenant la case situee en haut a gauche */
  Liste L;
  init_liste(&L);
  int taille = 0;
  int new_couleur;
  int couleur = M[0][0];
  int nbcl = cpt_couleur(tab,G->nbcl);
  trouve_zone_imp(M, dim, 0, 0, &taille, &L);
  printf("Couleur initiale : %d \n",couleur);

  /* selectionne une couleur tant que la grille contient plus d'une couleur  */
  do{
    do{
    new_couleur = (int)(rand()%(G->nbcl));
    }
    while(tab[new_couleur] == 0);

    /* si la couleur selectionnee est differente de la couleur de Zsg */
    if(new_couleur != couleur){
      tab[couleur] -= taille;
      couleur = new_couleur;
      tab[couleur] += taille;
      peint(G,couleur,M,&L);
      /* on peint toute les cases avec la nouvelle couleur, puis on effectue une nouvelle recherche afin de voir si notre zone possede de nouvelles cases */ 
      detruit_liste(&L);
      taille = 0;
      trouve_zone_imp(M,dim,0,0,&taille,&L);
      peint(G,couleur,M,&L);
      nbcl = cpt_couleur(tab,G->nbcl);
      nbCoups++;

      if(aff == 1){
	//Grille_attente_touche();
	Grille_redessine_Grille();
      }
      if(aff == 2){
	affiche_liste(&L);
	Grille_attente_touche();
	Grille_redessine_Grille();
      }
    }
  }while(nbcl > 1);

  printf("Couleur finale : %d\n", couleur);
  // printf("nbCoups = %d\n", nbCoups);
  return nbCoups;
}
Example #6
0
int main ()
{
    int i, element;
    Liste * liste1 = NULL; /* liste 1 est vide */

    /* Creation d'une liste */
    for (i=NB; i>0; i--) {
        liste1 = insere_liste(liste1, i);
    }

    affiche_liste(liste1);

    /* Retrait des 5 premiers elements */
    for (i=0; i<5; i++) {
        liste1 = retire_liste(liste1, &element);
        printf("Element %d retire\n", element);
    }

    affiche_liste(liste1);
    return 0;
}
Example #7
0
main (int argc, char *argv[])
{
	int i;
	int vecteur[] = {1,2,3,4,5,6,7,8,9,10};
	int *elementi;
	p_liste liste1 = NULL, liste2 = NULL; 

	/* Creation des listes */
	for (i=NB; i>0; i--)
		liste1 = insere_liste(liste1, &vecteur[i-1]);

	for (i=0; i<NB; i++)
		liste2 = insere_liste(liste2, &vecteur[i]);

	affiche_liste(liste1, (void (*) (void *, char *)) affiche_int);
	affiche_liste(liste2, (void (*) (void *, char *)) affiche_int);

	/* Retrait des 5 premiers nombres */
	for (i=0; i<5; i++) {
		liste1 = retire_liste(liste1, elementi);
		liste2 = retire_liste(liste2, elementi);
	}

	affiche_liste(liste1, (void (*) (void *, char *)) affiche_int);
	affiche_liste(liste2, (void (*) (void *, char *)) affiche_int);

	liste1 = concatene_listes(liste1, liste2);

	affiche_liste(liste1, (void (*) (void *, char *)) affiche_int);
	affiche_liste(liste2, (void (*) (void *, char *)) affiche_int);
}
Example #8
0
int sequence_aleatoire_rapide(int **M, Grille *G, int aff)
{
  /* initialisation de Zsg */
  Liste Lzsg;
  init_liste(&Lzsg);
  Liste *B = (Liste*)malloc((G->nbcl)*sizeof(Liste));
  int **App = (int**)malloc((G->dim)*sizeof(int*));
  int i, j;
  int k = 0;
  int l = 0;
  for (i = 0; i < G->dim; i++){
    App[i] = malloc((G->dim)*sizeof(int));
  }
  
  for(i = 0; i < G->dim; i++){
    for(j = 0; j < G->dim; j++)
      App[i][j] = -2; 
  }

  for (i = 0; i < G->nbcl; i++)
    init_liste(&B[i]);
  
  S_Zsg zone = init_zsg(G->dim, G->nbcl, Lzsg, B, App);
  int couleur = M[0][0];
  printf("couleur initiale : %d\n", couleur);

  int *tab = initialise_tab_couleur(G->nbcl);
  nb_couleur_initiales(&tab,M,G->dim);
  int new_couleur;
  int nbCoups = 0;
  int nbcl = G->nbcl;
  int taille;
  taille = agrandit_zsg(M, &zone, couleur, 0, 0);

  if(aff == 1){
    //Grille_attente_touche();
    Grille_redessine_Grille();
  }
  if(aff == 2){
    affiche_liste(&(zone.Lzsg));
    Grille_attente_touche();
    Grille_redessine_Grille();
  }
  
  Elnt_liste *actu;

  do{
    plus_grd_cl(zone,G,&k,&l);
    couleur = M[k][l];
    actu = B[couleur];
    tab[M[0][0]] -= taille;
    tab[couleur] += taille;
    
    while(actu != NULL){
      taille += agrandit_zsg(M,&zone,couleur,actu->i,actu->j);
      actu = actu->suiv;
    }
    detruit_liste(&(zone.B[couleur]));

    peint(G,couleur,M,&(zone.Lzsg));
    nbcl = cpt_couleur(tab,G->nbcl);
    nbCoups++;
      
    if(aff == 1){
      //Grille_attente_touche();
      Grille_redessine_Grille();
    }
    if(aff == 2){
      affiche_liste(&(zone.Lzsg));
      Grille_attente_touche();
      Grille_redessine_Grille();
    }
    
  }while(nbcl > 1);
  
  printf("Couleur finale : %d\n", couleur);
  //printf("nbCoups = %d\n", nbCoups);
  return nbCoups;
}
Example #9
0
int main() {

	int choix, result;
	task * list1, * list2, * tache;

	do {
		printf("\n********** Menu **********\n\n"
			   "0 - Quitter.\n"
			   "1 - Fonction cree_tache.\n"
			   "2 - Fonction cree_liste.\n"
			   "3 - Fonction affiche_liste.\n"
			   "4 - Fonction ajoute_tache.\n"
			   "5 - Fonction annule_tache.\n"
			   "6 - Fonction execute_tache_FIFO.\n"
			   "7 - Fonction depile_tache.\n"
			   "8 - Fonction execute_tache_LIFO.\n"
			   "9 - Fonction load_data.\n"
			   "10 - Fonction load_data2.\n"
			   "11 - Fonction insere_tache.\n"
			   "12 - Fonction insere_tache_priorite.\n"
			   "13 - Fonction fusion_listes.\n"
			   "14 - Fonction MAJ_priorite.\n\n"
			   "Choix : ");
		scanf("%d", &choix);

		switch(choix) {

			/* Quitter. */
			case 0 :
				printf("\n\nfin\n\n");

				break;

			/* Fonction cree_tache. */
			case 1 :
				printf("Test fonction cree_tache:\n");

				printf("Cas 1 : valeurs courantes\n");
				tache = cree_tache("aa",1);
				affiche_liste(tache);

				printf("Cas 2 : id vide\n");
				tache = cree_tache("",5);
				affiche_liste(tache);

				printf("Cas 2 bis : duree negative\n");
				tache = cree_tache("rr",-6);
				affiche_liste(tache);

				printf("Cas 3 : id = NULL\n"
					   "Impossible de créer une tache sans identifiant.\n");

				break;

			/* Fonction cree_liste. */
			case 2 :
				printf("Test fonction cree_liste:\n");

				printf("Cas 1 : tache classique\n");
				tache = cree_tache("gf",30);
				list1 = cree_liste(tache);
				affiche_liste(list1);

				printf("Cas 2 : Tache vide\n");
				list1 = cree_liste(NULL);
				affiche_liste(list1);

				printf("Cas 3 : valeur aberrante pour la tache\n");
				list1 = cree_liste("ab");
				affiche_liste(list1);

				break;

			/* Fonction affiche_liste. */
			case 3 :
				printf("Test fonction affiche_liste:\n");

				printf("Cas 1 : valeurs courantes\n");
				tache = cree_tache("ab",10);
				list1 = cree_liste(tache);
				affiche_liste(list1);

				printf("Cas 2 : liste avec une tache null\n");
				tache = NULL;
				list1 = creer_liste(tache);
				affiche_liste(list1);

				printf("Cas 3 : liste null\n");
				list1 = NULL;
				affiche_liste(list1);

				break;

			/* Fonction ajoute_tache. */
			case 4 :
				printf("Test fonction ajoute_tache:\n");

				printf("Cas 1 : ajout classique d'une tache a une liste\n");
				tache = cree_tache("ab",10);
				list1 = cree_liste(tache);
				tache = cree_tache("cd",20);
				result = ajoute_tache(list1, tache);
				printf("resultat : %d \n",result);

				printf("Cas 2 : liste null \n");
				result = ajoute_tache(NULL,tache);
				printf("resultat : %d \n",result);

				printf("Cas 3 : tache null \n");
				result = ajoute_tache(list1,NULL);
				printf("resultat : %d \n",result);

				printf("cas 4 : valeur aberrante pour la tache\n");
				result = ajoute_tache(list1,"cd");
				printf("resultat : %d \n",result);

				break;
			/* Fonction annule_tache. */
			case 5 :
				printf("Test fonction annule_tache:\n");

				printf("Cas 1 : valeurs courantes\n");
				list1 = cree_liste(cree_tache("aa",2));
				list1 = ajoute_tache(list1, cree_tache("bb",5));
				list1 = annule_tache(list1, "bb");
				affiche_liste(list1);

				printf("Cas 2 : tache non comprise dans la liste\n");
				list1 = cree_liste(cree_tache("aa",2));
				list1 = ajoute_tache(list1, cree_tache("bb",5));
				list1 = annule_tache(list1, "ff");
				affiche_liste(list1);

				printf("Cas 3 : liste NULL\n");
				list1 = NULL;
				list1 = annule_tache(list1, "ff");
				affiche_liste(list1);

				break;
			/* Fonction execute_tache_FIFO. */
			case 6 :
				printf("Test fonction execute_tache_FIFO:\n");

		        printf("Cas 1 : normal \n");
		        list1 = cree_liste(cree_tache("aa" 10));
		        list1 = ajoute_tache(list1, cree_tache("bb", 2));
		        list1 = ajoute_tache(list1, cree_tache("cc", 65));
		        list1 = execute_tache_FIFO(list1);
		        affiche_liste(list1);

		        printf("Cas 2 : La liste est vide\n");
		        list1 = NULL;
		        list1 = execute_tache_FIFO(NULL);
				affiche_liste(list1);

				break;
			/* Fonction depile_tache. */
			case 7 :
				printf("Test fonction depil_tache:\n");

				printf("Cas 1 : liste non vide\n");
				list1 = cree_liste(cree_tache("aa" 10));
		        list1 = ajoute_tache(list1, cree_tache("bb", 2));
		        list1 = depile_tache(list1);
		        affiche_liste(list1);

		        printf("Cas 1 bis : liste à une tache\n");
				list1 = cree_liste(cree_tache("aa" 10));
				list1 = depile_tache(list1);
		        affiche_liste(list1);

				printf("Cas 2 : liste vide\n");
				list1 = cree_liste(NULL);
				list1 = depile_tache(list1);
				affiche_liste(list1);

				break;
			/* Fonction execute_tache_LIFO. */
			case 8 :
				printf("Test fonction execute_tache_LIFO:\n");

		        printf("Cas 1 : normal \n");
		        list1 = cree_liste(cree_tache("aa" 10));
		        list1 = ajoute_tache(list1, cree_tache("bb", 2));
		        list1 = ajoute_tache(list1, cree_tache("cc", 65));
		        list1 = execute_tache_LIFO(list1);
		        affiche_liste(list1);

		        printf("Cas 2 : La liste est vide\n");
		        list1 = NULL;
		        list1 = execute_tache_LIFO(NULL);
		        affiche_liste(list1);

				break;
			/* Fonction load_data. */
			case 9 :
				printf("Test fonction load_data:\n");

				printf("Cas 1 : nom de fichier correct\n");
				list1 = load_data("tasks.dat");
				affiche_liste(list1);

				printf("Cas 2 : nom de fichier sans extension\n");
				list1 = load_data("tasks");
				affiche_liste(list1);

				printf("Cas 3 : Fichier null \n");
				list1 = load_data(NULL);
				affiche_liste(list1);

				printf("Cas 4 : valeur aberrante du nom de fichier\n"
					   "la fonction s'interrompt lors de son exécution.\n");
				break;
			/* Fonction load_data2. */
			case 10 :
				printf("Test fonction load_data2:\n");

				printf("Cas 1 : nom de fichier correct\n");
				list1 = load_data2("tasks.dat");
				affiche_liste(list1);

				printf("Cas 2 : nom de fichier sans extension\n");
				list1 = load_data2("tasks");
				affiche_liste(list1);

				printf("Cas 3 : Fichier null \n");
				list1 = load_data2(NULL);
				affiche_liste(list1);

				printf("Cas 4 : valeur aberrante du nom de fichier\n"
					   "la fonction s'interrompt lors de son exécution.\n");

				break;
			/* Fonction insere_tache. */
			case 11 :
				printf("Test fonction insere_tache:\n");

				printf("Cas 1 : liste et tache classique\n");
				tache = cree_tache("de",30);
				list1 = cree_tache("ab", 10);
				list1 = cree_liste(list1);
				list1 = insere_tache(list1, tache);
				tache = cree_tache("ab", 50);
				list1 = insere_tache(list_tache, t2);
				affiche_list1(list1);

				printf("Cas 2 : liste vide\n"
					   "Arret de la fonction.\n");

				printf("Cas 2 bis : tache vide\n"
					   "Arret de la fonction.\n");

				printf("Cas 3 : valeur aberrante\n"
					   "Arret de la fonction.\n");

				break;
			/* Fonction insere_tache_priorite. */
			case 12 :
				printf("Test fonction insere_tache_priorite:\n");

				printf("Cas 1 : valeurs courantes\n");
				list1 = cree_liste(cree_tache("yy", 18));
				list1 = insere_tache_priorite(list1, cree_tache("xx", 7));
				list1 = insere_tache_priorite(list1, cree_tache("rr", 1));
				affiche_liste(list1);

				printf("Cas 2 : liste null\n");
				list1 = NULL;
				list1 = insere_tache_priorite(list1, cree_tache("vv", 76));
				affiche_liste(list1);

				printf("Cas 2 bis : tache null\n");
				list1 = cree_liste(cree_tache("gg", 8));
				list1 = insere_tache_priorite(list1, NULL);
				affiche_liste(list1);

				printf("Cas 3 : liste null et tache null\n");
				list1 = NULL;
				list1 = insere_tache_priorite(list1, NULL);
				affiche_liste(list1);

				break;
			/* Fonction fusion_listes. */
			case 13 :
				printf("Test fonction fusion_listes:\n");

				printf("Cas 1 : 2 listes classiques\n");
				tache = cree_tache("ab", 10);
				list1 = cree_liste(tache);
				list1 = insere_tache(list1, cree_tache("aa", 4));
				list1 = insere_tache(list1, cree_tache("zz", 1));
				printf("\nListe 1 :\n");
				affiche_liste(list1);

				tache = cree_tache("ee", 7);
				list2 = cree_liste(tache);
				list2 = insere_tache(list2, cree_tache("rr", 25));
				list2 = insere_tache(list2, cree_tache("tt", 8));
				printf("\nListe 2 :\n");
				affiche_liste(l2);

				list1 = fusion_listes(list1, list2);
				printf("\nListe fusionnée:\n");
				affiche_liste(list1);

				printf("Cas 2 : l'un des 2 liste est vide\n");
				list1 = cree_liste(cree_tache("yy", 18));
				list1 = insere_tache(list1, cree_tache("uu", 6));
				list1 = insere_tache(list1, cree_tache("ii", 12));
				affiche_liste(list1);
				list1 = fusion_listes(NULL,list1);
				affiche_liste(list1);

				printf("Cas 3 : deux listes vides\n");
				list1 = fusion_listes(NULL,NULL);
				affiche_liste(list1);

				break;
			/* Fonction MAJ_priorite. */
			case 14 :
				printf("Test fonction MAJ_priorite:\n");

				printf("Cas 1 : liste non vide\n");
				list1 = cree_liste(cree_tache("yy", 18));
				list1 = insere_tache(list1, cree_tache("uu", 6));
				list1 = insere_tache(list1, cree_tache("ii", 12));
				result = MAJ_priorite(list1);
				printf("Resultat : %d\n", result);

				printf("Cas 2 : liste vide\n");
				list1 = NULL;
				result = MAJ_priorite(list1);
				printf("Resultat : %d\n", result);

				break;
		}
	} while (choix != 0);

	return 0;
}