Brodal kuyruğu için sözde kod


12

Brodal yığını ile ilgili daha fazla kaynak bulmaya çalışıyorum . Bulduğum tek şey Brodal-Okasaki yığınının haskell uygulaması , ancak bunların yığın yığınları olduğunu düşünüyorum , bu doğru mu? Dahası, Haskell'de okuma yazma bilmiyorum, bu yüzden fazla yardımcı olmuyor. Herkes Pseudocode, C, C ++, Python bir Brodal kuyruk uygulaması var (veya biliyor)?

Yukarıdaki varsayımlarım yanlışsa lütfen düzeltin.


3
Özellikle Brodal kuyruğunu uygulamak mı istiyorsunuz, yoksa bir öncelik kuyruğunun etkili bir şekilde uygulanmasını mı istiyorsunuz? Brodal, makalesinin sonuçlarına göre, bölgede daha fazla araştırma yapılmadan pratik olmadıklarını belirtti. Makalesi kapsamlı bir şekilde alıntılanmış, belki faydalı bir şey? CLR Algoritmalara Giriş, öncelik kuyrukları hakkında bir bölüme sahiptir, ancak öncelik kuyruklarında çok daha önceki bir çalışmaya referans verir.
Jay Elston

2
Orijinal Brodal kuyruğu yıkıcı atama kullanır, bu nedenle Haskell sürümünde bazı değişiklikler yapılması gerekir.
Fred Foo

Yanıtlar:


2

Haskell uygulaması işlevsel Brodal-Okasaki yığınına dayanmaktadır ve haklısınız, bu çarpık yığınların bir çeşididir. Makale çok açık bir şekilde yazılmıştır, bu yüzden iyi bir kaynak olacaktır.

Uygulama ile ilgili olarak, Scala'da scalaz kütüphanesinin bir parçası olarak bir uygulama da vardır .


1

Henüz kod Haskell olmayan bir şeye nasıl dönüştürüleceğini anlayamadım çünkü bu kısmi bir cevaptır. Haskell'i kullanmak zorunda olduklarının söyleyebileceğim nedeni Haskell'in tembel olmasıdır. Brodal-Okasaki yığınının kağıttan tembel bir şekilde alışması gerekir. Yani ihtiyacınız olan şey, bu işlevselliği BO Yığınının ihtiyaç duyabileceği diğer gereksinimlerle (tamamen işlevsel veri yapıları gibi) başka bir dile sağlamanın bir yoludur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.