Déjà, tu es mal tombé, car on ne fera pas tes devoirs à ta place.
Ensuite, tu n'as pas forcément besoin d'un arbre binaire pour y arriver
Enfin que se passera-t-il si un mot apparait plusieurs fois dans la phrase?
Si tu veux un coup de main (car on peut quand même t'aider un tout petit peu), fais déjà l'effort de coder toi-même une solution "plausible" et de nous la présenter, car je doute fort que ton prof ai pu te donner cet exercice sans avoir donné ne serait-ce que quelques bases pour y arriver.
A partir de là, nous pourrons commencer à dialoguer en t'expliquant ce qui est bien et, surtout ce qui est moins bien
Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire viennent aisément.Mon nouveau livre : Coder efficacement - Bonnes pratiques et erreurs à éviter (en C++)Avant de faire ce que tu ne pourras défaire, penses à tout ce que tu ne pourras plus faire une fois que tu l'auras fait
Le message qui suit est une réponse automatique activée par un membre de l'équipe de modération. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention. Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé. Pour plus d'informations, nous vous invitons à lire les règles générales du forum
Merci de colorer votre code à l'aide du bouton Code
Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: cpp;">Votre code ici</pre>.
Merci de modifier votre message d'origine en fonction.
@AyaKo1 Bonjour, PierrotLeFou qui participe à ce sujet est aveugle, sa synthèse vocale ne sais pas lire l'énoncer qui ce trouve dans l'image que vous avez posté. Pourriez vous poster du texte à la place de l'image. Merci pour lui.
@AbcAbc6: j'ai compris qu'il s'agit d'un arbre binair de recherche. Puisque AyaKo1 dit être d ébutante, il ne s'agit sûrement pas d'un arbre balancé ... En C, c'est un sujet idéal pour la récursivité. En C++, on pourrait sans doute tricher avec des map(). On n'a pas vraiment besoin de fonction pour créer un arbre. Il suffit d'avoir une fonction qui crée un noeud. Pour la création: + si le noeud est vide, on cré le noeud et on retourne son pointeur vers l'appelant. + sinon, si l'info à placer vient avant l'info courante, on insère sur le fils gauche, sinon on insère sur le fils droit. Pour la recherche, c'est presque identique, sauf que si on arrive à un noeud nul, c'est que ça n'existe pas. Pour l'affichage, on affiche le gauche, puis le courant, puis le droit.
Le Tout est souvent plus grand que la somme de ses parties.
Projet : Mais l'objet de ce projet est d'utiliser les arbres binaires de recherches pour indexer un fichier texte donné. Cet arbre contient les différents mots du fichier texte avec les occurrences du mots dans le fichier (position du mot dans les phrases du fichier). C'est-à-dire, ces mots du texte seront les index, et pour chaque mot on lui associe la liste des occurrences du mot dans le fichier (le nombre de phrases où ces mots apparaissent). Si un mot est présent plus d'un mot dans cette phrase, sur le compte qu'une seule mot, on considère une seule fois la phrase. La recherche d'une phrase dans un texte (dans le fichier texte) revient à faire l'intersection de la liste des positions des mots de la phrase dans l'arbre binaire de recherche .
1. Créer cette structure ,
2. Construire l'arbre de recherche , ( chercher un mot , insérer un mot s'il n'existe pas , ...)
3.- Créer la liste des positions , pouvoir y ajouter des positions , - faire l'intersection de deux liste (liste en commun), qui vérifie qu'un élément existe dans cette liste, ...
Ce que je comprend est que l'info est constituée de deux parties: + le mot lui-même + la liste de ses occurences dans le texte (liste des indices de ligne) Dans la fonction de création et/ou de recherche, la clé majeure est le mot. S'il n'est pas trouvé, on crée un nouveau noeud avec le mot et une liste contenant la position donnée en paramètre S'il est trouvé, on met à jour la liste en vérifiant si la ligne n'est pas dans la liste et on met à jour cette liste. Ça devrait être facile si les indices de lignes sont consécutifs. On n'a qu'à vérifier si le dernier élément est identique à celui qu'on vient de fournir. Sinon, on ajoute à la fin.
Le Tout est souvent plus grand que la somme de ses parties.
Est-ce que tu as essayé de compiler ton code? Et tu n'as pas d'erreur de compilation? As-tu essayé de l'exécuter? J'en doute. Tu génère bien un nouveau noeud pour chaque mot mais tu ne le places pas du tout dans ton arbre. Tu ne sembles pas savoir comment recopier une chaîne de caractères ni comparer deux chaînes. Je te donne du code qui fait le principal. Je comprend tout de même que ça n'est pas évident de jouer avec les pointeurs. - #include <stdio.h> #include <stdlib.h> #include <string.h>
Pourquoi limiter les mots à dix lettres et les représenter sous la forme d'un chaine "C style"?
Sais tu que std::string permet de représenter des chaines d'un nombre quelconque de caractères et que, en plus, elle permet la comparaison d'un simple if (str1 == str2) ?
Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire viennent aisément.Mon nouveau livre : Coder efficacement - Bonnes pratiques et erreurs à éviter (en C++)Avant de faire ce que tu ne pourras défaire, penses à tout ce que tu ne pourras plus faire une fois que tu l'auras fait
Tu veux ajouter un élément à ton arbre tree or tu ne fais que créer un élément sans l'ajouter (je ne vois aucune référence à tree dans le corps de la fonction).
Aussi, tu affectes elem->key[10] qui est hors tableau (un tableau de 10 éléments à ses indices qui vont de 0 à 9). Idem pour le paramètre key.
je vais essayier maintenant de trouver une facon pour faire la liste des position
- Edité par AyaKo1 5 janvier 2023 à 12:46:34
arbres binaires
× 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.
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.