Türkiye'nin en dandik Kargo şirketi hangisidir?
View Results
Recursion doğru kullanıldığı zaman çok işimize yarayabilir. Özellikle ağaç tipi data yapılarının tüm nodelarını dolaşmak istediğimizde recursiondan faydalanabiliriz. Fakat bu ağaç yapısının ne kadar derinliğe sahip olduğunu kestiremediğimiz durumlarda bu yönteme çok da bel bağlamamak lazım zira stack (yığın) taşabilir ve overflow hatasıyla karşılaşabiliriz.
Alternatif bir yöntem ise kendi yığınımızı kullanarak bu işi yapmaktır. Genel adı ile Breadth First Search (Yayılma Öncelikli Arama):
Stack stack = new Stack(); stack.Push(new DirectoryInfo(@"c:\")); while(stack.Count > 0) { DirectoryInfo dir = stack.Pop(); Console.WriteLine(dir.FullName); foreach (DirectoryInfo info in dir.GetDirectories()) stack.Push(info); }
Queue queue = new Queue(); queue.Enqueue(new DirectoryInfo(@"c:\")); while(queue.Count > 0) { DirectoryInfo dir = queue.Dequeue(); Console.WriteLine(dir.FullName); foreach (DirectoryInfo info in dir.GetDirectories()) queue.Enqueue(info); }
Name (required)
Mail (will not be published) (required)
Website