Problème : Fonction qui insère récursivement des elements dans une liste triée
Fermé
michael0703
Messages postés
4
Date d'inscription
samedi 7 mars 2020
Statut
Membre
Dernière intervention
2 février 2021
-
1 févr. 2021 à 21:44
michael0703 Messages postés 4 Date d'inscription samedi 7 mars 2020 Statut Membre Dernière intervention 2 février 2021 - 2 févr. 2021 à 21:10
michael0703 Messages postés 4 Date d'inscription samedi 7 mars 2020 Statut Membre Dernière intervention 2 février 2021 - 2 févr. 2021 à 21:10
A voir également:
- Problème : Fonction qui insère récursivement des elements dans une liste triée
- Liste déroulante excel - Guide
- Le fichier contient une liste de prénoms. triez ce tableau par ordre alphabétique des prénoms. quel mot est formé par les 6 premières lettres de la colonne code ? - Forum Bureautique
- Liste de numéro de téléphone suspect 07 ✓ - Forum Mobile
- Annuaire inversé gratuit liste rouge - Forum Internet / Réseaux sociaux
- Photoshop elements gratuit - Télécharger - Retouche d'image
2 réponses
Bonsoir,
La théorie
https://perso.esiee.fr/~landschm/IN3T01/Listes%20chainees%20dynamiques.pdf
Après les TP
Fin prêt pour la maîtrise
Je ne veux pas voir ce type de déclaration har type[80] pour tester excellent devant un prof non à moins qu'il soit sympa
http://gallium.inria.fr/~maranget/X/421/poly/listes.html
Go
La théorie
https://perso.esiee.fr/~landschm/IN3T01/Listes%20chainees%20dynamiques.pdf
Après les TP
void insertion_event(Tete_ev *liste, char type[80],float time)
{
/* Crйation du nouvel йlйment */
Event *nouveau = malloc(sizeof(*nouveau));
Event *p=liste->premier;
Event *l=liste->premier;
if ( nouveau == NULL)
{
exit(EXIT_FAILURE);
}
if(liste->premier==NULL){
liste->premier=nouveau;
liste->premier->time=time;
strcpy(liste->premier->type,type);
liste->premier->suivant=NULL;
}
else{
strcpy(nouveau->type,type);
nouveau->time = time;
if(l->suivant==NULL)
{
if(l->time>nouveau->time)
{
nouveau->suivant=l;
liste->premier=nouveau;
}else
{
liste->premier->suivant=nouveau;
}
}else if(liste->premier->suivant!=NULL)
{if(liste->premier->suivant->suivant==NULL){
if(liste->premier->time>=nouveau->time){
l=liste->premier->suivant;
liste->premier->suivant=nouveau;
nouveau->suivant=l;
l->suivant=NULL;
}
else{
l=liste->premier->suivant;
l->suivant=nouveau;
nouveau->suivant=NULL;}
}else{
l=liste->premier->suivant;
if(liste->premier->time>nouveau->time)
{
nouveau->suivant=liste->premier;
liste->premier=nouveau;
}else
{
p=liste->premier;
l=liste->premier->suivant;
while(l->suivant!=NULL )
{
if(nouveau->time>p->time && nouveau->time<l->time)
{
p->suivant=nouveau;
nouveau->suivant=l;
}
else
{
p=p->suivant;
l=l->suivant;
}
}if(nouveau->suivant==NULL)
{
if(nouveau->time>p->time && nouveau->time<l->time)
{
p->suivant=nouveau;
nouveau->suivant=l;
l->suivant=NULL;
}
else{
l->suivant=nouveau;
nouveau->suivant=NULL;}
}
}
}
}}
}
void suppression_event(Tete_ev *liste)
{
if (liste == NULL)
{
exit(EXIT_FAILURE);
}
if (liste->premier != NULL)
{
Event *aSupprimer = liste->premier;
liste->premier = liste->premier->suivant;
free(aSupprimer);
}
}
void afficher_event(Tete_ev *liste)
{
if (liste == NULL)
{
exit(EXIT_FAILURE);
}
Event *actuel = liste->premier;
while (actuel != NULL)
{
printf("type->%s \n time->%f \n", actuel->type,actuel->time);
actuel = actuel->suivant;
}
}
int nombreevent(Tete_ev *tete)
{
int i = 0;
if(tete->premier == NULL)
{
return 0;
}
/* Sinon, tant qu'il y a encore un élément ayant la val = valeur */
while(tete->premier != NULL)
{
/* On incrémente */
tete->premier = tete->premier->suivant;
i++;
}
/* Et on retourne le nombre d'occurrences */
return i;
}
Fin prêt pour la maîtrise
Je ne veux pas voir ce type de déclaration har type[80] pour tester excellent devant un prof non à moins qu'il soit sympa
http://gallium.inria.fr/~maranget/X/421/poly/listes.html
Go
michael0703
Messages postés
4
Date d'inscription
samedi 7 mars 2020
Statut
Membre
Dernière intervention
2 février 2021
2 févr. 2021 à 21:10
2 févr. 2021 à 21:10
Merci pour la documentation.