Commit cb700be5 authored by Benoit AUGER--DUBOIS's avatar Benoit AUGER--DUBOIS
Browse files

jsp

parent 32595366
......@@ -210,6 +210,28 @@ t_seance* findFirstSeance(t_seance* seance){
return findFirstSeance(seance->seancePrecedent);
}
//rôle : fonction qui retourne la dernière séance d'une liste chainé de séance */
t_seance* findLastSeance(t_seance* seance){
if(seance->seanceSuivante == nullptr){
return seance;
}
return findFirstSeance(seance->seanceSuivante);
}
//rôle : fonction qui retourne vrai si une séance est présente 2 fois */
bool isThereAMatchingSeance(t_seance* seance,int numeroSemaine, int jourSemaine, int heures, int minutes ){
bool compare = false;
while (seance != nullptr){
if (seance->numeroSemaine == numeroSemaine && seance->jourSemaine == jourSemaine &&
seance->heures == heures && seance->minutes == minutes ){
compare = true;
break;
}
seance = seance->seanceSuivante;
}
return compare;
}
// Question 5.1 :
/*----------------------------------------------
rôle : Fonction qui retourne le nombre de séance après une séance dans une liste chainé de séance */
......@@ -334,8 +356,28 @@ la chaine facilement en catégorie et ainsi comparer ses éléments facilement.
// Question 8 :
/*----------------------------------------------
rôle : fonction qui fusionne deux chaînages de séance en supprimant les doublons puis retourne le nouveaux chaînage. */
t_seance* fusionClone(t_seance* chaine1, t_seance* chaine2){
rôle : fonction qui crée et retourne un chaînages de séance en fusionnant deux chaînage de séance donnée sans doublons.*/
t_seance* fusionNew(t_seance* chaine1, t_seance* chaine2){
t_seance* temp;
chaine1 = findFirstSeance(chaine1);
chaine2 = findFirstSeance(chaine2);
chaine1->seancePrecedent = findLastSeance(chaine2);
t_seance* chaine3 = findFirstSeance(chaine2);
while (chaine3 != nullptr){
if( isThereAMatchingSeance(chaine3,chaine3->numeroSemaine, chaine3->jourSemaine,
chaine3->heures,chaine3->minutes) ){
temp = chaine3->seanceSuivante;
desallocationSeance(chaine3);
chaine3 = temp;
}
chaine3 = chaine3->seanceSuivante;
}
return findFirstSeance(chaine3);
}
/*----------------------------------------------
rôle : fonction qui fusionne un chaînages de séance a un autres en supprimant les doublons,
puis retourne chaînage1 sans crée de nouveaux chaînage. */
t_seance* fusion(t_seance* chaine1, t_seance* chaine2){
chaine1 = findFirstSeance(chaine1);
chaine2 = findFirstSeance(chaine2);
t_seance* temp1 = chaine1;
......@@ -351,6 +393,7 @@ t_seance* fusionClone(t_seance* chaine1, t_seance* chaine2){
temp2 = temp2->seanceSuivante;
temp1 = chaine1;
}
chaine1->seancePrecedent =
temp1 = findLastSeance(chaine1);
temp1->seanceSuivante = chaine2;
return chaine1;
}
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment