Completion de liste.c : -ajouterEntete - supprimerEnTete -listenouv -vide -afficherListe(temporaire pour pouvoir tester) main.c : un test de ces fonction. sae.h : prototype des nouvelles fonctions
parent
881216e3ed
commit
30a1e809af
@ -1,2 +1,102 @@
|
|||||||
#include "sae.h"
|
#include "sae.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Ajoute un maillon en tête de la liste de départements.
|
||||||
|
*
|
||||||
|
* \param ldept La liste de départements à laquelle le maillon doit être ajouté.
|
||||||
|
* \param nomDept Le nom du département à ajouter.
|
||||||
|
* \param resp Le responsable du département à ajouter.
|
||||||
|
* \param nbP Le nombre de personnes dans le département à ajouter.
|
||||||
|
*
|
||||||
|
* \return La nouvelle liste de départements, avec le maillon en tête.
|
||||||
|
*/
|
||||||
|
ListeDept ajouterEnTete(ListeDept ldept, char nomDept[], char resp[], int nbP)
|
||||||
|
{
|
||||||
|
MaillonDept *m;
|
||||||
|
|
||||||
|
m = (MaillonDept *)malloc(sizeof(MaillonDept));
|
||||||
|
if (!m)
|
||||||
|
{
|
||||||
|
printf("Erreur de malloc\n");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
strcpy(m->nomDept, nomDept);
|
||||||
|
strcpy(m->resp, resp);
|
||||||
|
m->nbP = nbP;
|
||||||
|
if (vide(ldept))
|
||||||
|
{
|
||||||
|
m->suiv = NULL;
|
||||||
|
return m;
|
||||||
|
}
|
||||||
|
m->suiv = ldept;
|
||||||
|
return m;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Supprime le maillon en tête de la liste de départements.
|
||||||
|
* \param ldept La liste de départements dont le maillon en tête doit être supprimé.
|
||||||
|
* \return La nouvelle liste de départements, sans le maillon en tête.
|
||||||
|
*
|
||||||
|
* Si la liste est vide ou ne contient qu'un seul élément, la fonction retourne une nouvelle liste vide.
|
||||||
|
* Si la liste contient plusieurs éléments, le maillon en tête est supprimé et la fonction retourne la nouvelle liste de départements,
|
||||||
|
* en commençant par le deuxième maillon.
|
||||||
|
*/
|
||||||
|
ListeDept supprimerEnTete(ListeDept ldept)
|
||||||
|
{
|
||||||
|
MaillonDept *aux;
|
||||||
|
if (!ldept)
|
||||||
|
{
|
||||||
|
printf("Operation impossible\n");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
if (!ldept->suiv)
|
||||||
|
return listenouv();
|
||||||
|
aux = ldept->suiv;
|
||||||
|
free(ldept);
|
||||||
|
return aux;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Vérifie si une liste de départements est vide.
|
||||||
|
* @param ldept La liste de départements à vérifier.
|
||||||
|
* @return true si la liste est vide, false sinon.
|
||||||
|
*/
|
||||||
|
bool vide(ListeDept ldept)
|
||||||
|
{
|
||||||
|
if (!ldept)
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @brief Créer une nouvelle liste de départements vide.
|
||||||
|
*
|
||||||
|
* @return La nouvelle liste de départements vide.
|
||||||
|
*/
|
||||||
|
ListeDept listenouv()
|
||||||
|
{
|
||||||
|
ListeDept l;
|
||||||
|
|
||||||
|
l = NULL;
|
||||||
|
return l;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Affiche tous les départements d'une liste, avec leurs noms, leurs responsables et leur nombre de places, sous forme de tableau.
|
||||||
|
* @param ldept Liste de départements à afficher.
|
||||||
|
*/
|
||||||
|
void afficherListe(ListeDept ldept)
|
||||||
|
{
|
||||||
|
// Affichage de l'en-tête du tableau
|
||||||
|
printf("| %-30s | %-30s | %-10s |\n", "Nom du département", "Responsable", "Places");
|
||||||
|
printf("+--------------------------------+--------------------------------+------------+\n");
|
||||||
|
|
||||||
|
// Parcours de la liste
|
||||||
|
while (ldept != NULL)
|
||||||
|
{
|
||||||
|
// Affichage des informations du département
|
||||||
|
printf("| %-30s | %-30s | %-10d |\n", ldept->nomDept, ldept->resp, ldept->nbP);
|
||||||
|
|
||||||
|
// Passage au département suivant
|
||||||
|
ldept = ldept->suiv;
|
||||||
|
}
|
||||||
|
}
|
@ -1,6 +1,15 @@
|
|||||||
#include "sae.h"
|
#include "sae.h"
|
||||||
|
|
||||||
int main(void)
|
|
||||||
|
int main(void)
|
||||||
{
|
{
|
||||||
return 0;
|
ListeDept ldept;
|
||||||
|
|
||||||
|
ldept = listenouv();
|
||||||
|
|
||||||
|
ldept = ajouterEnTete(ldept, "Informatique", "John Doe", 15);
|
||||||
|
ldept = ajouterEnTete(ldept, "Bio", "Ryan Taro", 20);
|
||||||
|
afficherListe(ldept);
|
||||||
|
ldept = supprimerEnTete(ldept);
|
||||||
|
afficherListe(ldept);
|
||||||
}
|
}
|
Loading…
Reference in new issue