Dinamik ağaçlar ağ akışları, dinamik grafikler, kombinatoryal problemler (Tarjan ve Werneck tarafından "Uygulamada Dinamik Ağaçlar") ve yakın zamanda birleştirme sözlükleri (Adam Karczmarz tarafından "Basit Birleştirilebilir Sözlük") gibi sorunların çözümünde önemli bir rol oynamaktadır.
Dinamik ağaçlar ile 1983 yılında Sleator & Tarjan'ın "Dinamik ağaçlar için bir veri yapısı" başlıklı makalede belirtilen tanıma atıfta bulunuyorum.
- Edward Kmett, ST ağaçlarının bir versiyonunu çoğunlukla C ++ muadilinin çevirisi olarak uyguladı, bkz. Bağlantı kesme ağaçları .
- Chris Okasaki, "Tamamen işlevsel veri yapıları" adlı ünlü kitabında Splay ağaçlarının sınırlı bir uygulamasını yazdı.
- Ralf Hinze ve Ross Paterson, 2-3 parmak ağacı adı verilen, ancak dinamik ağaçların orijinal tanımından biraz farklı bir amaca sahip işlevsel bir veri yapısı ortaya koydu.
Dinamik ağaçların uygulanması (ve belki de performansı) üç yaklaşıma göre bölünmüştür:
- ET ağaçlarının (Euler turu) büyük rol oynadığı doğrusallaştırma. Tamamen işlevsel bir çalışma bulunamadı.
- ST ağaçlarının amiral gemisi olduğu yol ayrışımı, Kmett'ın versiyonunu buldu.
- Ağaç kasılması, Üst ağaçların, topoloji ağaçlarının ve RC ağaçlarının oyuncu olduğu yerler. Tamamen işlevsel bir çalışma bulunamadı.
Tamamen işlevsel analiz ve uygulama Splay, AVL, kırmızı-siyah ağaç üzerinde bulunabilir, ancak bunlar dinamik ağaçlar DEĞİLDİR. Birincisi, ikincisinin gölge (sanal veya yardımcı olarak da adlandırılır) veri yapısı olarak kabul edilir.
Benim sorum şu:
Fonksiyonel Programlama araştırma topluluğunun dinamik ağaç veri yapısına katılmama nedenleri (sakıncaları, zayıflıkları) nelerdir?