Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. class Vertex<T>
  2. {
  3. // Bu düğüme gelen düğümlerin listesi
  4. public IList<Vertex<T>> IncomingVertices {get; set;}
  5. // Bu düğümün gittiği düğümleri listesi
  6. public IList<Vertex<T>> OutgoingVertices {get; set;}
  7. // Düğümün içindeki veri
  8. public T Data{get; set;}
  9. public Vertex(T data)
  10. {
  11. Data = data;
  12. IncomingVertices = new List<Vertex<T>>();
  13. OutgoingVertices = new List<Vertex<T>>();
  14. }
  15. public Vertex()
  16. {
  17. IncomingVertices = new List<Vertex<T>>();
  18. OutgoingVertices = new List<Vertex<T>>();
  19. }
  20.  
  21. // Bu vektörden hedef vektöre gidebilir miyim?
  22. public bool IsTraversePossible(Vertex<T> dest)
  23. {
  24. return TraverseUtil(dest);
  25. }
  26.  
  27. // IsTraversePossible için util
  28. public bool TraverseUtil(Vertex<T> v)
  29. {
  30. // Hedefe ulaşıldı mı
  31. if(this == v)
  32. {
  33. return true;
  34. }
  35.  
  36. bool result = false;
  37. // Mümkün bütün yönlere git
  38. foreach(var outgoing in OutgoingVertices)
  39. {
  40. result = result || outgoing.TraverseUtil(v);
  41. }
  42. // Sonucu döndür. Bir tane true bile gelse
  43. // cevap true olacak Recursion sonunda
  44. return result;
  45. }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement