Bonjour,
Dans le cadre d'un petit projet de fac, je dois faire un algorithme permettant de transformer un automate à état fini non déterministe en automate à état fini déterministe.
Je vous passe les détails.
Je dois donc délarer 2 structures : etat et transition qui modèliseront mon automate.
Mais je suis confronté à un petit soucis. Ma structure "etat" à besoin de ma structure "transition" et vice versa.
J'ai donc du procéder de la manière suivante :
Contenu de etat.h :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| #ifndef _ETAT_H
#define _ETAT_H
#include <stdlib.h>
#include "transition.h"
//Structure
typedef struct etat
{
int estFinal;
struct transition* ptrTransition;
}etat;
//Procédure et fonctions
void addTransition(etat* e, struct transition* t);
#endif |
Contenu de transition.h :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| #ifndef _TRANSITION_H
#define _TRANSITION_H
#include <stdlib.h>
#include "etat.h"
//Structure
typedef struct transition
{
struct transition* transitionSuivante;
struct etat* ptrEtat;
char* type;
}transition;
//Procédure et fonctions
#endif |
Cette solution fonctionne mais j'aimerais savoir comment déclarer au mieux mes structures car il y a plusieurs façons possibles de les déclarer. Ma façon m'oblige à mettre le mot clé struct devant les argument de pointeurs de structure dans mes fonctions et je suis sûr qu'on peut faire sans.
Par exemple dans etat.h :
void addTransition(etat* e, struct transition* t);
Merci et bonne journée/soirée !
Partager