İkili Arama Ağacı için İkili ağaç (BST)

oy
1

Nasıl O (1) ekstra boşluk ile İkili Arama Ağacı için İkili Ağacı dönüştürebilirsiniz?

Oluştur 17/05/2010 saat 10:56
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
6

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.

  1. Mevcut ağacından rastgele yaprak düğümü tut
  2. Mevcut ağacından yaprak düğümü bağlantısını kaldırma
  3. Düğümü yeni ikili arama ağacının kökünü olun
  4. Mevcut ağacından başka rasgele yaprak düğümü tut
  5. Mevcut ağaçtan bu düğümü bağlantısını kaldırma
  6. için doğru yer bulun ve yeni ikili arama ağacına, düğüm bağlamak
  7. 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.

Cevap 17/05/2010 saat 11:24
kaynak kullanıcı

oy
-1

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.

Cevap 18/02/2014 saat 20:52
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more