je suis débutant en c++ et on vient de me proposer cette exercice pour débutant mais je n'ai pas du tout compris comment faire.
Voici l'exercice :
Pour résumer, vous devez faire deux classes pour représenter une liste chaîne (simple, double ou autre selon votre envie). La première que nous nommerons liste_item qui représentera les différentes cellules. Et la classe liste qui sera le conteneur à la structure. Les opérations minimales sont : l'ajout d'un élément (fonction unaire nommée add) ; la taille de la liste nommée size ; la possibilité de nettoyer la liste (fonction sans argument clear)et enn l'accès à la i e cellule (fonction unaire get qui renvoie un entier).
Tu dois écrire 2 classes: - une qui représente une liste chainée (simplement ou doublement, c'est toi qui choisit) - une qui représente les chainons (usuellement appelés "node" en anglais, et qui ont un sens plus large) qui constituent la liste.
En général, dans les désigns, la notion de chainon est totalement invisible pour l'utilisateur. Il n'a pas à savoir que ça existe. Et on te demande à ce que le code suivant fonctionne
List l; // on va parler anglais du début jusqu'à la fin tant qu'à faire, et ne pas mélanger "liste" et "add"
l.add(5);
l.add(8);
std::cout << l.size() << "\n"; // qui doit afficher 2
std::cout << l.get(1) << "\n"; // qui doit afficher 8
l.clear();
std::cout << l.size() << "\n"; // qui doit afficher 0
A toi de te débrouiller pour te ça compile et que cela donne les résultats attendus.
(après, on peut chipoter que ni get ni add ne sont unaires, mais bien binaires (car ils prennent une liste en 1er paramètre invisible), et que list::get(index) est une mauvaise conception, mais c'est un exercice après tout!) (Je rêve, où c'est à la mode les exos sur les listes?)
Relis le(s) chapitre(s) des cours que tes profs t'ont donnés sur l'écriture des classes.Tu auras aussi besoin d'allocation dynamique et de manipuler des pointeurs pour lier des chainons entre eux.
Même si on sait résoudre ton problème les yeux fermés, nous n'allons pas le faire pour toi. On peut te guider, t'expliquer des points que tu n'as pas compris. Mais pour ça, il faut que tu nous montre où tu en es, ce qui te bloque. Entre : traduire le code utilisateur en interface de la classe, et chainage des chainons & politique de parcours, il y a bien plus d'un sujet.
Tu suis quel cours? On a plutôt tendance à recommander celui de Zeste de Savoir ici. Avant de te faire plonger dans les pointeurs et les katas d'algo du C transposés au C++, il te fera travailler les bases du C++.
En termes d'exo, je tends à recommander France-ioi, mais en s'imposant d'utiliser la bibliothèque standard du C++ -- malheureusement, ce n'est pas l'approche choisie par les corrections sur le site.
Aïe! Fais des recherches sur le forum pour comprendre mon Aïe! En français tu as plutôt celui de zeste de savoir qui te formera au langage C++. Sinon pour répondre à ta question tu auras plus de réponse sur le forum du langage C (car le cours OpenClassroom est plus du "C avec les classes" que du "C++".)
× 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.