Bonjour,
Comment implémenter un graphe avec C++. Mon graphe est constitué d'un ensemble des nœuds de différents types et un ensemble des arcs aussi avec différents types.
Merci d'avance.
Bonjour,
Comment implémenter un graphe avec C++. Mon graphe est constitué d'un ensemble des nœuds de différents types et un ensemble des arcs aussi avec différents types.
Merci d'avance.
En utilisant ta tête (Ou en nous proposant un code de base, ou en explicitant tes idées, il faut toujours donner une base !).
Bonjour,
Il y a 1001 façon d'implémenter des graphes en C++, le tout serait de savoir ce que tu vas en faire, à quelle "fréquence" et de savoir si tu préfère avoir quelque chose de plus rapide mais utilisant plus de mémoire ou l'inverse.
Sinon un petit lien qui pourra t'aider.
Autant proposer ce lien directement
Ou, pour un tutoriel pour orienté débutant, Commencer facilement avec Boost Graph (oui, c'est de l'auto-promo, et alors ? )
Merci pour toutes les réponses. Mais, dans mon travail je n'ai pas besoin d'aucun algorithme offert par Boost.graph. Est il utile donc de l'utiliser?
Un bon programmeur est un programmeur féniant (enfin tant qu'il ne délocalise pas son travail en Chine ) donc si boost peut t'éviter de coder toi-même des fonctions et te faire gagner du temps n'hésite pas.
Bien sûr si tu as des contraintes spécifiques (ex : contrainte de taille du programme, etc...) tu seras peut être obligé de le réécrire toi-même.
Il ne faut aussi pas oublier qu'un code présent dans une bibliothèque a moins de chances d'être boggué que le code qu'on écrit nous-même.
Est-ce que c’est un travail d’étude ?
Car si c’est un travail d’étude, le but est d’apprendre à modéliser un graphe, pas de prendre une librairie qui te mâche le travail.
Dans un autre cas, c’est impossible de répondre de manière générale à ta question. J’ai plutôt envie de dire que à moins que tu aies de bonnes raisons de ne pas le faire, oui ça vaut probablement le coup. Mais sans connaître ton besoin précis…
Mon but est de représenter une requête SQL sous forme d'un graphe. J'ai une structure précise de ce graphe : un ensemble des nœuds de différents types (des noeuds qui représentent les variables dans la clause from...) et un ensemble des liens (des liens qui représentent la jointure, des liens qui représentent les quantificateurs existentiels...). Par exemple,
- chaque variable déclarée dans la clause from va être transformée à un nœud que j'ai l'appeler un nœud Ns, ce nœud possède une propriété qui est le prédicat défini sur la variable.
- Chaque expression de jointure dans la clause where va être transformé à un lien de jointure Lj. Ce lien possède une propriété qui est la condition de jointure
- ...
C’est pas plutôt un hyperarbre une requête sql*?
En fait, je veux savoir comment transformer une requête SQL sous forme d'un graphe. Autrement dit, comment récupérer les différentes parties de la requête (les variables dans la clause from, les prédicats définis sur ces variables dans la clause where, les conditions de jointure, les attributs de projection....) avec un code écrit en C++ ?
Il te faut un parseur SQL. Mais je pense que tu auras un arbre, pas un graphe .
Aucune idée de s’il en existe de facilements intégrables, sinon, ça doit se faire avec spirit ou autres, mais je pense que la grammaire SQL est quand même un assez gros morceau.
Il existe toujours la solution de "l'œil du libre".
La bibliothèque libre Sqlite implémente une grammaire SQL, donc, tu peux regarder son code.
C'est une piste comme une autre.
Mes principes de bases du codeur qui veut pouvoir dormir:Pour faire des graphes, essayez yEd.
- Une variable de moins est une source d'erreur en moins.
- Un pointeur de moins est une montagne d'erreurs en moins.
- Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
- jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
- La plus sotte des questions est celle qu'on ne pose pas.
le ter nel est le titre porté par un de mes personnages de jeu de rôle
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager