/*
Optimisation TD3 partie prog.
©2003 http://www.Software-DS.com
*/
#include<stdio.h>
#define infini 9999
#define N 10
typedef int sommet;
typedef int graphe[N][N];
int E[N]={0,0,0,0,0,0,0,0,0,0};
void creer_connexion(graphe M,sommet
x,int succ){
int i,j;
for(i=1;i<=succ;i++){
printf("\nintroduire un sommet voisin de x =%d ",x);
scanf("%d",&j);
M[x][j]=1;
}
}
void creer_dist(graphe D,sommet
x,int succ){
int i,j,d;
for(i=1;i<=succ;i++){
printf("\nsucc(%d)=",x);
scanf("%d",&j);
printf("\ndist(%d,%d)=",x,j);
scanf("%d",&d);
D[x][j]=d;
}
}
void init_d(graphe D,int n){
int i,j;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if (i==j)
D[i][j]=0;
else
D[i][j]=infini;
}
void print(graphe M,int x,int
n){
int i,j;
printf("\n succ=1,pred=2 x=%d votre choix : ",x);
scanf("%d",&i);
if (i==1){
printf("les successeurs de %d sont :\n",x);
for(j=1;j<=n;j++){
if (M[x][j]==1)
printf("%d,",j);
}
}
else{
printf("les predecesseurs de %d sont :\n",x);
for(j=1;j<=n;j++){
if (M[j][x]==1)
printf("%d,",j);
}
}
}
void chemin(graphe M,graphe
C,int k,int n){
int a,b,c,d,x;
for(a=1;a<=n;a++)
for(b=1;b<=n;b++)
C[a][b]=M[a][b];
for(a=2;a<=k;a++)
for(b=1;b<=n;b++)
for(c=1;c<=n;c++){ x=0;
for(d=1;d<=n;d++)
x+=C[b][d]*M[d][x];
C[b][c]=x;
}
}
void DFS(graphe
M,sommet x){
int i;
for(i=1;i<=N;i++)
if ((M[i][x]==1) && (E[M[i][x]]==0)){
printf("%d ,",M[i][x]);
E[M[i][x]]=1;
DFS(M,M[i][x]);
}
}
void inverse(graphe
M){
int i,j;
graphe RES;
for(i=1;i<=N;i++)
for(j=1;j<=N;j++)
RES[j][i]=M[i][j];
for(i=1;i<=N;i++)
for(j=1;j<=N;j++)
RES[i][j]=M[i][j];
}
/* ©2003
All Rights Reserved to www.Software-DS.com
*/
|