Bu çok naif olabilir, ama tüm çapraz tiplerin ikili ağaçlarının (düz, sıralı ve dengeli) bağlamını merak ediyordum:
- derinlik ilk ön sipariş
- derinlik ilk sırada
- derinlik-ilk post-order
- genişliği birinci
ön ve sonrası siparişlerin gerçek faydası nedir? Yani, ön ve / veya sipariş sonrası geçişin diğer ikisine göre bir (bazı) avantajlar sağlayabileceği bir tür ve / veya ikili ağaç konfigürasyonu var mı?
AFAICS, sırasıyla ve genişlik ilkinin belirli bir avantaj sağlayabileceği bazı ikili ağaç türleri ve konfigürasyonları vardır:
Dengeli bir ikili ağaç için, önce derinlikteki herhangi bir geçiş, önce genişliğe kıyasla daha az bellek depolama alanı kullanır (örneğin, 6 veya 7 düğümlü dengeli ikili ağaç için, yükseklik 2'dir, bu nedenle derinlik ilkinde her geçişin maksimum Herhangi bir zamanda 2 düğüm bulunurken, son seviye 3 veya 4 düğüme sahiptir, bu nedenle genişlik ilk geçişinin bir noktada 3 veya 4 düğüme kadar depolaması gerekir). Bu durumda, sırayla çapraz geçiş en az miktarda bellek kullanır ve düğümleri doğal düzeninde ziyaret eder.
Dengeli olmayan bir ikili ağaç için, en kötü durumdaki yerleştirme senaryosuna yakınsa, önce onu geçmek, önce derinlik ilk geçişlerinden daha az bellek kullanır. Yani bu durumda ilk önce bir avantaj sunar. Sırayla geçiş, değerleri doğal düzenlerinde tekrar ziyaret etme avantajına sahiptir.
Ancak, geçiş öncesi ve sonrası geçişin diğer ikisine göre avantaj sağlayacağı bir durum düşünemiyorum.
A + B * C
; bu, normal kullanıcılar için anlaşılması için, düzeltme sonrası siparişin önekinin her iki önekinden daha kolaydır.