Nasıl O (1) ekstra boşluk ile İkili Arama Ağacı için İkili Ağacı dönüştürebilirsiniz?
İkili Arama Ağacı için İkili ağaç (BST)
sıralı ikili arama ağacına bir sırasız ikili ağaç dönüştürme önemsiz, ama biraz daha zor oruç yapmak.
İşte kriterlerini karşılamak gerekir naif uygulama, ben, sadece genel algoritma almaya fiili adımlar tarif olmaz.
- Mevcut ağacından rastgele yaprak düğümü tut
- Mevcut ağacından yaprak düğümü bağlantısını kaldırma
- Düğümü yeni ikili arama ağacının kökünü olun
- Mevcut ağacından başka rasgele yaprak düğümü tut
- Mevcut ağaçtan bu düğümü bağlantısını kaldırma
- için doğru yer bulun ve yeni ikili arama ağacına, düğüm bağlamak
- Orijinal ağacın kadar adımı tekrarlayın 4-6 boş
Sen bağlantısını kaldırmadan ediyoruz yaprak düğümün ebeveyn gibi, sadece birkaç değişken gerektirir gerekir (düğümler sürece ebeveyn-bağlantıları vardır) tüm O içinde, yeni ağacın kök düğümünü ve geçici değişkenlerin bir çift, (1 ) alan kriterleri.
Bu optimal ikili arama ağacı üretmez. Bunun için onları ekleyerek ve doğru sırayla eklemeden önce düğümleri sıralamak veya kırmızı-siyah ağaç veya bir yayvan ağacı gibi, bir dengeleme ikili arama ağacı kullanmak için her gerekiyor.
O (n) - O tür o, birleştirmeli sıralama bir ağaca geri listeyi dönüştürme nlogn kullanılarak O (n) 'de INPLACE yapılabilir bir iki kat bağlantılı listesi-İkiliden Ağacı dönüştürme
Basit nlogn çözüm.













