#include <stdio.h>
#define NB_MAX_SOMMET 100
#define NB_MAX_CAR_SOMMET 80
int matrice[NB_MAX_SOMMET][NB_MAX_SOMMET];
char liste[NB_MAX_SOMMET][NB_MAX_CAR_SOMMET];
char saisie='\0';

FILE *fi;

/*******************************************************************/
/* Sous-programme qui insert les elements du fichier dans une liste*/
/*******************************************************************/

void inserer_dans_liste(temp)
		char temp[];
{
  int i = 0;
  int flag = 1;

  while((i < NB_MAX_SOMMET) && (strcmp(liste[i], "\0")))
	 {
	  if (!strcmp(liste[i], temp)) flag = 0;
	  i++;
	}

 if (flag) strcpy (liste[i], temp);

}

/*******************************************************************/
/* Sous-programme qui compte le numero d'elements dans la liste    */
/*******************************************************************/

int compter_dans_liste()
{
  int n = 0;

  while (strcmp(liste[n], "\0"))n++;

  return(n);
}

/**********************************************************************/
/* Sous-programme qui cherche l'emlacement d'un element dans la liste */
/**********************************************************************/

int chercher_dans_liste(temp, n)
	  char temp;
	  int n;
{
  int i=0;

  while (strcmp(liste[i],temp) && (i<n))
	 {
		i++;
	 }
  return(i);
}





/************************************************************************/
/*                                MAIN                                  */
/************************************************************************/


void main()
{
  char chaine[NB_MAX_CAR_SOMMET], caractere = '\0';
  int i, j, k, p, q, n;

  /* initialisation du tableau liste*/
  for (i=0; i<NB_MAX_SOMMET; i++) strcpy(liste[i],"\0");

  /* ouverture du fichier graph1.txt - sortie du programme s'il n'existe pas */
  if ((fi = fopen("graph1.txt", "r")) == NULL) exit(0);

  /*Lecture des sommets dans le fichier et rangement des sommets dans liste */

  i = 0;
  while (1)
	{
	 /*lecture d'un caractere dans le fichier*/
	 caractere = getc(fi);

	 /* On quitte la boucle while si on a atteint la fin de fichier. Mais avant, on insere dans le
		 tableau liste, la chaine en cours de constitution */
	 if (feof(fi))
		{
		 if (strlen (chaine)) inserer_dans_liste(chaine);
		 break;
		}

	  /* Si le caractere lu n'est pas un blanc ou un retour a la ligne, on l'insere dans 1 chaine provisoire */
	  if ((caractere != ' ' ) && (caractere != '\n')) chaine[i++] = caractere;
	  else
		 {
		  chaine[i] = '\0';
		  inserer_dans_liste(chaine);
		  for (i=0; i<NB_MAX_CAR_SOMMET; i++) chaine[i]='\0';
		  i = 0;
		 }
	 }

	 /* Affichage du contenu du tableau liste */
    for (i=0; (i<NB_MAX_SOMMET) && (strcmp(liste[i], "\0")); i++) printf("%s\n", liste[i]);




/*	printf("\n\n\nTaper 'q' pour revenir au menu principal ");
	do {saisie = getchar();} while((saisie != 'q') && (saisie != 'Q')); */





	 n = compter_dans_liste();

	 for (i=0; i<n; i++)
		for (j=0; j<n; j++)
			matrice[i][j]=0;



/************ Tout est OK jusque la ******************/



	 /*************************************************/
	 /* Lecture du fichier et remplissage de 'matrice'*/
	 /*************************************************/

/*	 while (!feof(fi))
		{
		 lire fichier
	temp = premier lettre;
	p = chercher_dans(liste, temp, n);
	temp = deuxieme lettre;
	q = chercher_dans(liste, temp, n);
	matrice[p][q] = 1;
		}*/

	 /* Ajouter arcs */
	 /*    for (i=0; i<n; i++)
		 for (j=0; j<n; j++)
	  if (matrice[i][j]==1)
		 for (k=0; k<n; k++)
			{ if (matrice[j][k]==1)
		{ if (matrice[i][k]==0)
		  matrice[i][k]=2;
		}
			}*/

fclose(fi);

/****************************************************************/
/* Ecrire le graph complette dans un autre fichier              */
/****************************************************************/

/*
fopen("res.txt", "w");

for(i=0; i<n; i++)
  {
	 for(j=0; j<n; j++)
	 {
		if ((matrice[i][j]==1)||(matrice[i][j]==2))
		  {
			*/ /* Ecrire "liste[i] liste[j]" dans la file res.txt */
		  /*}
	 }
  }
fclose(fi);*/

}



























































































































































































































































































