Generation d'un graphe d'une matrice d'incidence/d'adjacence

Fermé
malek.barkaoui Messages postés 1 Date d'inscription vendredi 7 décembre 2012 Statut Membre Dernière intervention 7 décembre 2012 - Modifié par malek.barkaoui le 7/12/2012 à 20:56
mamiemando Messages postés 33346 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 8 novembre 2024 - 5 janv. 2013 à 14:22
Bonjour,


j'aimerais bien savoir si C'est possible de générer un graphe à partir d'une matrice d'adjacence ou d'incidence avec le langage C si oui qu'est ce que je dois utiliser comme IDE , s'il y a des bibliothèques qui permettent de faciliter la tâche , et comment je peux faire son parcours en largeur et en profondeur . Svp j'ai un mini-projet et je sais pas par ou commencer , si vous connaissez quelque chose vos réponses me seront utiles !
A voir également:

1 réponse

mamiemando Messages postés 33346 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 8 novembre 2024 7 803
5 janv. 2013 à 14:22
j'aimerais bien savoir si C'est possible de générer un graphe à partir d'une matrice d'adjacence ou d'incidence avec le langage C.

Oui

Si oui qu'est ce que je dois utiliser comme IDE

Celui que tu veux, l'IDE n'a aucun impact sur ce que tu peux développer ou non, c'est juste du confort d'utilisation. Tu peux par exemple utiliser code::blocks si tu es sous windows, kdevelop ou anjuta sous linux.

s'il y a des bibliothèques qui permettent de faciliter la tâche, et comment je peux faire son parcours en largeur et en profondeur.

Une recherche google mène ici, mais je ne l'ai jamais testée :
https://github.com/igraph/

En C++ tu as boost mais si tu débutes, ça risque d'être un peu trop compliqué pour commencer.
https://www.boost.org/doc/libs/1_47_0/libs/graph/example/dfs-example.cpp

Svp j'ai un mini-projet et je sais pas par ou commencer , si vous connaissez quelque chose vos réponses me seront utiles !

Pour moi le plus simple c'est simplement de coder des fonctions qui parcourent la matrice pour récupérer les informations qui t'intéressent. Par exemple dans un DFS (parcours en profondeur d'abord) ou un BFS (parcours en largeur d'abord) tu as besoin de savoir quels sont les successeurs d'un noeud. Supposons que ta matrice d'adjacence soit de taille n * n et que chaque case stocke un entier (A[i][j] = 1 si i -> j, 0 sinon)

Alors itérer sur les successeurs du noeud i revient à parcourir la colonne i et considérer les valeurs de j telles que A[i][j] !=0.

En d'autres termes, il suffit que tu codes une structure de matrice facile à utiliser et normalement après c'est assez simple...

Bonne chance
0