Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- grafo 28-01-2016
- IDEA : Se A sta in un ciclo allora con una sola visita in profondità (una sola dfs_visit) tutti
- i vertici di A vengono visitati(e quindi anneriti). Se al ritorno dalla da dfs_visit c'è ancora un vertice
- bianco di A allora signfica che A non è contenuto in un percorso ciclico.
- Tuttavia poichè il grafo è orientato non è detto che i vertici di A siano mutuamente raggiungibili, per verificare
- ciò è necessario trasporre il grafo è ripetere l'operazione all'inizio descritta sul grafo trasposto a partire sempre da A.
- Algo(G,A)
- if(DFS(G,A))
- GT=TrasponiGrafo(G,GT)
- return DFS(GT,A)
- return false
- end
- DFS(G,A)
- //Sbianca V
- foreach u in A
- if(c[u]=b)
- dfs_visit(G,u)
- else return false
- return true
- end
- dfs_visit(G,s)
- c[s]=g
- foreach x in Adj(s)
- if(c[x]=b)
- dfs_visit(G,x)
- c[s]=n
- end
- TrasponiGrafo(G,GT)
- //copia array V di G in GT
- foreach v in V
- foreach u in Adj(v)
- GT.Adj(u) = insert (u,v)
- return GT;
- end
- albero 28-01-2016
- algo(t,p,l1,l2,i)
- index=0;
- temp=0;
- if(t)
- index=algo(t.sx,t,l1-1,l2-1,i)
- temp=index+1
- index=algo(t.dx,t,l1-1,l2-1,temp)
- if( (l1<=0) && (l2>=0) && (temp%7=0) && (T.K%2=0))
- if(p)
- if(p.sx=t)
- p.sx=cancella(t)
- else p.dx=cancella(t)
- else return -1
- i=index
- return i;
- end
- main(t,l1,l2)
- if((algo(t,null,l1,l2,0))=-1)//cancella la radice
- t=cancella(t)
- end main
Add Comment
Please, Sign In to add comment