Bonjour tout le monde,
J'ai examen d'algo mercredi et je cale sur les graphes non orientés (sur les orientés aussi ).
Voici ce que je ne comprends pas (pour l'instant) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| FONCTION GO_AjouterNoeud(Graphe,Information);
PARAMETRES Graphe : POINTEUR DE TNoeudGO; [I/O]
Information : DATA; [I]
RETOUR BOOLEEN;
VARIABLE Nouveau : POINTEUR DE TNoeudGO;
DEBUT
SI ALLOUER(Nouveau,TNoeudGO) ALORS
Nouveau->Donnee = Information;
Nouveau->PremiereRel = NULL;
Nouveau->Suivant = Graphe;
Graphe = Nouveau;
RETOURNER VRAI;
SINON
RETOURNER FAUX;
FIN SI
FIN |
Je ne comprends pas :
Nouveau->Suivant = Graphe;
Si le graphe ne contient aucun noeud, il pointe quand même sur graphe ?
Edit: je viens de comprendre, vue que par facilité on ajoute toujours au début, le premier est pointé par GRAPHE, ensuite, je corrige le chainage en pointant nouveau sur graphe (qui est le premier pour l'instant)
Je ne comprends pas non plus pourquoi on dit "
Nouveau->Suivant = Graphe;"
Edit : J'ai compris aussi, je fais pointer GRAPHE sur Nouveau, il ne pointe donc plus sur l'ancien premier mais bien sur nouveau
Et ici :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| FONCTION GO_AjouterRelation(Graphe,Source,Cible);
PARAMETRES Graphe : POINTEUR DE TNoeudGO; [I/O]
Source,Cible : POINTEUR DE TNoeudGO; [I]
RETOUR BOOLEEN;
VARIABLE Nouveau : POINTEUR DE TRelationGO;
DEBUT
SI (Source != NULL) ET (Cible != NULL) ALORS
SI ALLOUER(Nouveau,TRelationGO) ALORS
Nouveau->Cible = Cible;
Nouveau->Suivant = Source->PremiereRel;
Source->PremiereRel = Nouveau;
RETOURNER VRAI;
SINON
RETOURNER FAUX;
FIN SI
SINON
RETOURNER FAUX;
FIN SI
FIN |
Sauriez-vous me dire dans le schéma à quoi correspond :
1 2 3 4
|
Nouveau-->Cible
Nouveau->Suivant = Source->PremiereRel;
Source->PremiereRel = Nouveau; |
J'ai franchement beaucoup de mal, j'espère que quelqu'un saura m'aider.
Merci d'avance.
beegees
Partager