Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo implementar la clasificación topológica a través de la programación

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

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

=

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)

{

j;

si

(j

gt;

n)

retorno

falso;

}

ans[i]

=

j;

en[j]

=

-1;

para

(int

k

=

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;

}