SORU
15 AĞUSTOS 2011, PAZARTESİ


Bir ağaç ETMENİZ kullanarak arama

Bir ağaç bu sınıftan oluşturduk.

class Node
{
    public string Key { get; }
    public List<Node> Children { get; }
}

Çocukları ve onların çocukları bir durum tespiti: olanları almak için aramak istiyorum

node.Key == SomeSpecialKey

Bunu nasıl uygulayabilirim?

CEVAP
15 AĞUSTOS 2011, PAZARTESİ


Bu özyineleme gerektiren bir yanılgıdır.yığın ya da bir sıra gerektiren ve en kolay yolu özyineleme kullanarak uygulamaktır. Bütünlüğü uğruna olmayan özyinelemeli bir cevap veririz.

    static IEnumerable<Node> Descendants(this Node root)
    {
        var nodes = new Stack<Node>(new[] {root});
        while (nodes.Any())
        {
            Node node = nodes.Pop();
            yield return node;
            foreach (var n in node.Children) nodes.Push(n);
        }
    }

Örneğin bu ifade kullanın:

 root.Descendants().Where(node => node.Key == SomeSpecialKey)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Android Police

    Android Poli

    21 NİSAN 2010
  • DeAdPiXel6667

    DeAdPiXel666

    2 Ocak 2010
  • Paulo Bautista

    Paulo Bautis

    21 Aralık 2008