Dengeli İkili Ağaç Kerem ERZURUMLU Hacettepe Üniversitesi Bilgisayar Bilimleri Mühendisliği
Soru İkili ağacı en hızlı şekilde “tam” dengelemek
Cevap En yaygın olarak kullanılan yöntem; –Dal derinlikleri temel alınarak dengeleme yapılır.
Örnek
Önemli Yordamlar int getHeight(BTree *leaf) { int lh,rh; if (leaf==NULL) return 0; lh=getHeight(leaf->left); rh=getHeight(leaf->right); if (lh>rh) return (lh+1); else return (rh+1); }
Önemli Yordamlar int balanceLeaf(BTree *leaf) { int rh,lh; rh=getHeight(leaf->right); lh=getHeight(leaf->left); if(abs(rh-lh)>=2){ if (rh>lh) rotateLeft(leaf); else rotateRight(leaf); balanceLeaf(leaf->left); balanceLeaf(leaf->right); } return 1; }
Önemli Yordamlar int balanceTree(BTree *root) { int rh,lh; if(root==NULL) return 0; balanceLeaf(leaf->right); balanceLeaf(leaf->left); return 1; }
Performans Test Ortamı –AMD 1000 –256Mb RAM –Takas bellek kapalı
Performans Her sayi için test 100 kere tekrarlandı ve sonuçların ortalaması alındı. Test süreleri en kötü ağaçtan en iyi ağacı oluşturma zamanı
Performans Rastgele 100 tamsayı –200x10e-6 saniye Rastgele tamsayı –5000x10e-6 saniye Rastgele tamsayı –1.1 saniye
Dengeli İkili Ağaç Seminer Sonu Katılımcılılarımıza teşekkür ederiz Kerem ERZURUMLU