Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Vertex<T>
- {
- // Bu düğüme gelen düğümlerin listesi
- public IList<Vertex<T>> IncomingVertices {get; set;}
- // Bu düğümün gittiği düğümleri listesi
- public IList<Vertex<T>> OutgoingVertices {get; set;}
- // Düğümün içindeki veri
- public T Data{get; set;}
- public Vertex(T data)
- {
- Data = data;
- IncomingVertices = new List<Vertex<T>>();
- OutgoingVertices = new List<Vertex<T>>();
- }
- public Vertex()
- {
- IncomingVertices = new List<Vertex<T>>();
- OutgoingVertices = new List<Vertex<T>>();
- }
- // Bu vektörden hedef vektöre gidebilir miyim?
- public bool IsTraversePossible(Vertex<T> dest)
- {
- return TraverseUtil(dest);
- }
- // IsTraversePossible için util
- public bool TraverseUtil(Vertex<T> v)
- {
- // Hedefe ulaşıldı mı
- if(this == v)
- {
- return true;
- }
- bool result = false;
- // Mümkün bütün yönlere git
- foreach(var outgoing in OutgoingVertices)
- {
- result = result || outgoing.TraverseUtil(v);
- }
- // Sonucu döndür. Bir tane true bile gelse
- // cevap true olacak Recursion sonunda
- return result;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement