Ton typedef inverse Stack et stack donc il n'est pas utilisable. Ou bien met partout une majuscule à stack, ça simplifiera.
Quand à ta question, pourquoi veux tu que la fonction isEmpty() retourne un struct stack? Ça n'a pas de sens. La fonction peut retourner un int ou mieux elle devrait retourner un bool qui serait true ou false pour indiquer si la pile est vide ou pas.
J'ai fait ces fonctions pour implémenter la pile en utilisant des liste chainées. Quelqu'un pour me corriger. J'ai du mal aussi à voir ce que je vais utiliser dans le fichier.h (mes prototypes et le typedef). J'ai déjà implémenté la liste sous cette forme
struct List {
D element;
struct List *next;
};
/* Pre-condition : list is non-empty */
static void setNext(PList, PList);
/*Pre-condition : list is non-empty */
static void setElement(PList, D);
PList emptyList() {
return NULL;
}
PList getNext(PList list) {
return list->next;
}
void setNext(PList list, PList p) {
list->next = p;
}
D getElement(PList list) {
return list->element;
}
void setElement(PList list, D x) {
list->element = x;
}
bool isEmptyList(PList list) {
return list == NULL;
}
PList addAtTheBeginning(PList list, D x) {
PList p = malloc(sizeof(struct List));
if (p == NULL) {
fprintf(stderr, "Error: addAtTheBeginning: malloc");
exit(1);
}
setElement(p, x);
setNext(p, list);
return p;
}
Je sais bien que tout le monde copie bêtement le code de Sedgewick de 1989, mais il n'y a aucune raison de vouloir systématiquement allouer dynamiquement les struct stack.
On peut très bien se munir d'une fonction qui initialise une struct pile
J'ai fait ces fonctions pour implémenter la pile en utilisant des liste chainées.
il faudrait ouvrir un autre sujet parce que là, ça ne correspond plus du tout au titre.
implémentation pile tableau
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
En recherche d'emploi.