Cómo implementar la clasificación topológica a través de la programación
El método básico de implementación
El método de clasificación topológica es el siguiente:
(1) Seleccione un gráfico sin predecesor (es decir, el gráfico sin predecesor). el grado es 0) del vértice del gráfico dirigido y generarlo.
(2) Eliminar el vértice de la red y eliminar todos los bordes dirigidos que emanan del vértice.
(3) Repetir los dos pasos anteriores, hasta que no queden más vértices sin predecesores en las redes restantes.
Secuencia topológica
Código central C
bool
TopologicalSort (int
a[][101])
//Devuelve True si se puede completar la clasificación topológica
{
int p>
n
=
a[0][0],
i,
j
int
en[101],
ans[101];
memset(en,
0,
tamaño de(into));
memset(ans,
0,
tamaño de(ans)); /p>
para
(i
=
1;
i
lt; =
n;
i )
{
para
(j
= p>
1;
j
lt;=
n;
j )
{
si
(a[i][j]
gt;
0)
en [j];
}
}
en[0]
=
1;
p>
para
(i
=
1;
i
lt;=
n
i )
{
j
=
0 ;
mientras
(en[j]
!=
0) p>
{
j;
si
(j
gt;
n)
retorno
falso;
}
ans[i]
=
j;
en[j]
=
-1;
para
(int
k p>
=
1;
k
lt;=
n ;
k )
{
si
(a[j][k]
gt;
0)
en[k]--;
}
}
para
(i
=
1;
i
lt;=
n;
i )
{
cout
lt;lt;
ans[i]
lt;lt;
"
";
}
cout
lt; es;
endl;
retorno
verdadero;
}