daniele2013

3 e 4 compito gennaio

Feb 12th, 2016
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.40 KB | None | 0 0
  1. grafo 28-01-2016
  2. IDEA : Se A sta in un ciclo allora con una sola visita in profondità (una sola dfs_visit) tutti
  3. i vertici di A vengono visitati(e quindi anneriti). Se al ritorno dalla da dfs_visit c'è ancora un vertice
  4. bianco di A allora signfica che A non è contenuto in un percorso ciclico.
  5. Tuttavia poichè il grafo è orientato non è detto che i vertici di A siano mutuamente raggiungibili, per verificare
  6. ciò è necessario trasporre il grafo è ripetere l'operazione all'inizio descritta sul grafo trasposto a partire sempre da A.
  7.  
  8. Algo(G,A)
  9. if(DFS(G,A))
  10. GT=TrasponiGrafo(G,GT)
  11. return DFS(GT,A)
  12. return false
  13. end
  14.  
  15. DFS(G,A)
  16. //Sbianca V
  17. foreach u in A
  18. if(c[u]=b)
  19. dfs_visit(G,u)
  20. else return false
  21. return true
  22. end
  23.  
  24. dfs_visit(G,s)
  25. c[s]=g
  26. foreach x in Adj(s)
  27. if(c[x]=b)
  28. dfs_visit(G,x)
  29. c[s]=n
  30. end
  31.  
  32. TrasponiGrafo(G,GT)
  33. //copia array V di G in GT
  34.  
  35. foreach v in V
  36. foreach u in Adj(v)
  37. GT.Adj(u) = insert (u,v)
  38. return GT;
  39. end
  40.  
  41. albero 28-01-2016
  42. algo(t,p,l1,l2,i)
  43. index=0;
  44. temp=0;
  45. if(t)
  46. index=algo(t.sx,t,l1-1,l2-1,i)
  47. temp=index+1
  48. index=algo(t.dx,t,l1-1,l2-1,temp)
  49.  
  50. if( (l1<=0) && (l2>=0) && (temp%7=0) && (T.K%2=0))
  51. if(p)
  52. if(p.sx=t)
  53. p.sx=cancella(t)
  54. else p.dx=cancella(t)
  55. else return -1
  56.  
  57. i=index
  58. return i;
  59. end
  60.  
  61. main(t,l1,l2)
  62. if((algo(t,null,l1,l2,0))=-1)//cancella la radice
  63. t=cancella(t)
  64. end main
Add Comment
Please, Sign In to add comment