Information

Author(s) Maxime Mawait & Nicolas Rybowski
Deadline No deadline
Submission limit No limitation

Sign in

Q3: Pile Simple

Vous devez implémenter les fonctions pop et push pour une structure de type pile (stack/LIFO):

struct node {
    struct node *next;
    char *name;
};

Indices :

  • char *name est un pointer, sa mémoire doit être initialisée en utilisant malloc(3) afin de copier une chaine de caractère sur la pile.
  • Autre commandes utiles strncpy(3) et strlen(3).
  • N'oubliez pas de libérer toute la mémoire allouée quant vous retirer un élément de la pile.

Question 1: Pop
/**
* Supprime l'élément du haut de la pile et retourne son contenu.
*
* @head : un pointeur vers le haut de la pile
* @result : un pointeur pour stocker l'élement enlevé
*
* @return 0 si pas d'erreur, 1 sinon
*
* pre : @result contient une chaine de caractères correcte terminée par un octet nul (null-terminated string)
* post : @result contient la chaine de caractère @name de l'élément du haut de la pile
*/

int pop(struct node **head, char *result){
Question 2: Push
/**
* Ajoute @name au dessus de la pile.
*
* @head : un pointeur vers le haut de la pile
* @value : la chaine de caractère à placer dans l'élément au dessus de la pile
*
* @return 0 si pas d'erreur, 1 sinon
*/

int push(struct node **head, const char *value){
Question 3: Zone de test

Voici une zone vous permettant d'implémenter des tests dans la fonction montest(). Le score du test n'est pas pris en compte dans le score total.

Les résultats de votre test s'afficheront dans la zone de retour de l'exercice.

Attention Si vous utilisez printf() ne pas utiliser de retour à la ligne \n.

void montest(){