示例#1
0
int main() { CARTE c; Liste l1,l2,l3,l4,l5;
    char rep; int n;
    l1=creer_liste(); l2=creer_liste();
    l3=creer_liste(); l4=creer_liste();
    l5=creer_liste();
    do {
        printf("quitter(0); Ajouter en tete(1); Ajouter en queu(2); Supprimer en tete(3); Visualiser(4); Supprimer(5)"); fflush(stdout);
        rep=getchar();
        switch(rep) {
            case '1': printf("Valeur(1..13) et couleur (0..3) \n"); scanf("%d %hhd",&(c.rang),&(c.couleur));
                      if (c.rang>=1 && c.rang<=13 && c.couleur>=0 && c.couleur<=3)
                          l1=ajout_tete(c,l1);
                      break;
            case '2': printf("Valeur(1..13) et couleur (0..3) \n"); scanf("%d %hhd",&(c.rang),&(c.couleur));
                      if (c.rang>=1 && c.rang<=13 && c.couleur>=0 && c.couleur<=3)
                          l1=ajout_queue(c,l1);
                      break;
            case '3': supprimen(0,l1);
                      break;
            case '4': visualiser_liste(l1);
                      break;
            case '5': printf("Quelle est la position a supprimer ? \n");
                      scanf("%d",&n);
                      if (n>=0)
                          l1=supprimen(n,l1);
                      break;
            default : continue;
                      break;
        }
        getchar();
    } while (rep !='0');

    return 0;
}
示例#2
0
liste Tri(liste *l){// on donne un pointeur pour pouvoir supprimer de la mémoire la liste *l 
	double dureemax;
	liste p = *l;
	liste r = NULL;
	int i = 1;
	int imax = 1;
	dureemax = p->duree;
	char notedureemax = p->note;
	while( *l ){ // tant que tout n'est pas trié ( *l non vide ) on continue
		while(p){ // Boucle pour chercher le maximum et sa position dans *l (isupp)
			if( p->duree > dureemax){ // on en trouve un et on garde en mémoire ses caractéristiques
				dureemax=p->duree;
				notedureemax=p->note;
				imax=i;
				i=i+1; // on incrémente pour regarder au rang suivant
				p=p->suiv;
				}
			else{
				i=i+1; // on en trouve pas on incrémente quand même
				p=p->suiv;
				}
	
		} // sortie de boucle , on a trouvé le maximum
		r=ajouttete3(r, dureemax, notedureemax); // on ajoute le maximum trouvé dans r
		*l=supprimen(imax,*l); // on le supprime de *l
		p=*l; // on réinitialise p  et les variables, on recommence le tri
		if(p){
			dureemax=p->duree;
			notedureemax=p->note;
			imax=1;}
		i=1;
		
	}
	return r; // on retourne la liste triée
}