Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ALGO (G){ //v1=rosso, v2=blu
- INIT(G); //coloro i vertici di bianco
- GRADO_ENTRANTE(G,ge); //calcolo il grado entrante di ogni vertice
- FOR EACH v IN V DO
- IF (ge[v]=0) THEN //inserisco in una lista i vertici con grado entrante 0
- L=insert(L,v);
- BUILD_V1V2(G,L);
- FOR EACH v in V DO //se trovo qualche vertice ancora bianco
- IF (c[v]=bianco) THEN
- return FALSE;
- return TRUE;
- }
- BUILD_V1V2(G,L){
- FOR EACH v IN L DO
- ret=FALSE;
- FOR EACH u IN ADJ[v] DO //coloro di blu gli adiacenti dei rossi
- ret=TRUE;
- IF (c[u]=bianco) THEN
- c[u]=blu;
- IF (ret=TRUE) THEN
- c[v]=rosso;
- }
- GRADO_ENTRANTE(G,ge){
- FOR EACH v in V DO
- ge[v]=0;
- FOR EACH v in V DO
- FOR EACH u in ADJ[v] DO
- ge[u]=ge[u]+1;
- }
- INIT(G){
- FOR EACH v in V DO
- c[v]=bianco;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement