Advertisement
Davencode

Untitled

Jul 3rd, 2021
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.69 KB | None | 0 0
  1. TRACCIA 24-01-2019
  2. Siano dati due grafi G1 e G2 e due vertici s,v € V. Verificare con i due grafi passati in ingresso (in tempo lineare) se:
  3. -> nessun percorso infinito in G1 che parte da s raggiunge v
  4. -> tutti i percorsi infiniti in G2 che partono da s raggiungono v
  5. -----------------------------------
  6. MIA SOLUZIONE:
  7.  
  8. Algo(G1,G2,s,v)
  9. INIT(G1,G2)
  10. RET1=DFS_VISIT(G1,s,v,c1)
  11. RET2=DFS_VISIT(G2,s,v,c2)
  12.  
  13. /*Dalle chiamate di DFS_VISIT verifico se si verificano prettamente queste due condizioni che sarebbero i due punti
  14. della traccia.. qualora la cosa si verificasse allora l'algoritmo ritorna true e la condizione della traccia è soddisfatta,
  15. altrimenti false*/
  16.  
  17. if(RET1=TRUE && RET2=FALSE)then
  18. return TRUE
  19. else
  20. return FALSE
  21. ----------------------------------
  22. INIT(G1,G2)
  23. for each g1 in G1 do
  24. c1[g1] = bianco
  25. for each g2 in G2 do
  26. c2[g2] = bianco
  27. ----------------------------------
  28. /*La mia dfs_visit in pratica visita il grafo e setta i vari colori con la cosa che
  29. controlla in più se è un percorso infinito. In tal caso ritorna true perché
  30. richiesto dalla traccia percorsi infiniti.
  31. Dopodiché coloro di nero il vertice visitato
  32. Alla fine controllerò soltanto v se è diventato nero o meno,
  33. se è diventato nero vuol dire che ci sono passato e quindi c'è stato un percorso
  34. che ha raggiunto v e quindi il punto 2 della traccia. Altrimenti il punto 1 della traccia.
  35.  
  36. DFS_VISIT(G,s,v,c)
  37. c[s]=grigio
  38. ret=true
  39. for each u € ADJ[s] do
  40. if ( c[u]=bianco ) then
  41. DFS_VISIT(G,u,v,c)
  42. else if ( c[u]=grigio ) then //verifico l'esistenza dei percorsi infiniti
  43. ret = true
  44. c[s] = nero
  45. if ( c[v] = nero ) then
  46. ret = false
  47. else
  48. ret = true
  49. -------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement