Structure et pointeur en C++

yaobo84 Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   -  
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
je dois implementer le graphe: initialiser le graphe, ajouter des sommets en des aretes...
voici mes debuts:

struct elementadjacent
{ int info;
struct elementadjacent *suivant;
};

struct sommet
{ int label;
int info;
struct elementadjacent *adj;
struct sommet* suivant;
};

struct graphe
{ int nbSommet;
int nbArete;
int maxSommet;
struct sommet* premierSommet;
struct sommet* dernierSommet;
}

//initialisation du graphe
void InitGraphe(graphe *g)
{ g=new graphe;
(*g).nbSommet=0;
(*g).nbarete=0;
(*g).maxSommet=0;
g.premierSommet=NULL;
g.dernierSommet=NULL;
}

Je voudrais donc savoir est-ce que ma procedure InitGraphe est bien implementer? et commet proceder pour ecrie la procedure ajoutSommet(graphe* g,int S)?
Merci d'avance




1 réponse

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
bonjour, ça me semble pas mal, mais là tu fait du C plus que du C++ (à part le new).
au lieu de (*g).sommet, utilise la notation g->sommet, c'est plus simple et plus lisible.
d'ailleurs, les deux dernière lignes (g.premierSommet) sont fausses.
Du point de vue structure général du code, il faut mieux allouer l'espace mémoire dans la porté où tu le détruit. à ta place, j'enlèverai le 'new' de InitGraph. Si tu le conserve, fait une fonction FreeGraph.
Pour ta fonction ajoutSommet(), je ne sais pas, "int S" n'est pas suffisant pour définir un sommet.
0