SORU
31 Mart 2010, ÇARŞAMBA


Özyinelemeli olarak sahne Genişlik öncelikli Arama

Hadi ikili bir ağacın genişliği-ilk arama gerçekleştirmek istediğini söylüyorözyinelemeli olarak. Nasıl olurdu Peki?

Çağrı yığını olarak yardımcı sadece depolama için kullanılması mümkün mü?

CEVAP
31 Mart 2010, ÇARŞAMBA


(Varsayarak kulüpler bu sadece bir çeşit düşünce egzersiz, hatta bir numara ödev/soru, ama sanırım bunu hayal tuhaf bir senaryo nerede iznin herhangi bir yığın alanı için bir sebep [bazıları gerçekten kötü özel bellek yöneticisi? /OS sorunları biraz tuhaf zamanı?] hala yığın... erişimi vardır

Genişlik-ilk geçişi geleneksel bir sıra, bir yığın kullanır. Doğanın bir sıra ve bir yığın hemen hemen tam tersi, yani kullanmak istiyor çağrı yığını (yığın, bu nedenle adı) gibi yardımcı depolama (bir sıra) oldukça fazla mahkum edilmemesi sürece yaptığın şey aptalca saçma ile çağrı yığını olmamalısın.

Aynı şekilde, uygulamak için deneyin olmayan herhangi bir kuyruk özyineleme doğa aslında bir algoritma yığını ekliyor. Bu artık genişliği ilk ikili ağaç üzerinde arama, ve bu nedenle çalışma zamanı falan geleneksel BFS için artık tamamen geçerli hale getirir. Tabii ki, her zaman basit bir özyinelemeli çağrı ile herhangi bir döngü, ama anlamlı özyineleme herhangi bir tür değil.

Ancak, bazı maliyet BFS semantiği şöyle bir şey uygulamak için yollar başkaları tarafından görüldüğü gibi, vardır. Eğer karşılaştırma pahalı ama düğüm geçişi ise daha sonra @Simon Buchan yaptığı gibi, basit bir yinelemeli derinlik öncelikli arama, sadece yaprakları işleme çalıştırabilirsiniz. Bu büyüyen sıra öbek, sadece yerel bir değişken derinlik ve yığınları defalarca çağrıda ağaç ve üzerinden geçilen bitti gibi bir yığın yapılmış olan yeniden saklanan anlamına gelir. Ve @Patrick kaydetti, bir ikili ağaç tarafından desteklenen bir dizi genellikle saklı genişlik-ilk geçişi amacıyla her neyse, bir genişlik öncelikli arama olacağını önemsiz, ayrıca gerekmeden bir yedek sırası.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • EmperorTigerstar

    EmperorTiger

    14 EYLÜL 2009
  • Jeb Corliss

    Jeb Corliss

    17 Kasım 2006
  • Roger Huffman

    Roger Huffma

    4 ŞUBAT 2007