Herkes arasındaki farkı açıklayabilir misiniz ikili ağacın ve ikili arama ağacına bir örnekle ?
İkili ağacı ve ikili arama ağacına arasındaki fark
İkili ağaç: Ağaç her düğüm iki yaprakları kadar vardır
1
/ \
2 3
İkili arama ağacı: Kullanılan arama . Bir ikili sol alt içeren ağaç sadece az ebeveyn düğüm daha değerlerle düğümleri, nerede ve sağ çocuk sadece büyük veya ebeveyn eşit değerlerle düğümleri içerir.
2
/ \
1 3
Bir ikili ağaç her bir düğüm, bir "sol" işaretçi, bir "sağ" işaretçi ve bir veri öğesi içeren düğümler, yapılmıştır. Ağacın en üst düğüme "kök" işaretçi işaret ediyor. Sol ve sağ işaretçileri yinelemeli iki tarafında küçük "alt ağaçlar" işaret ediyor. Boş ağacın - Bir boş gösterici unsurları ile bir ikili ağaç temsil eder. (A null işaretçi ile temsil edilen), boş bir ikili ağaç ya da tek bir düğüm, imal edildiği durumda sol ve sağ işaretçileri (öncesinde yinelemeli tanımlı) bir ikili ağaç her noktası: resmi özyinelemeli tanımıdır.
Bir ikili arama ağacı "ikili ağaç sıralı" (BST) ya da düğümler sıralandığında ikili ağaç türüdür: her düğüm için, sol alt ağacı tüm öğeler düğümü (<) daha az olan, ve tüm öğeler sağ alt ağaç düğüm daha büyük olan (>).
5
/ \
3 6
/ \ \
1 4 9
"Kök" düğüm 5 ve onun sol alt ağaç düğümleri (1, 3, 4), <5 ve sağ alt ağaç düğümleri (6, 9)> - 5, yukarıda gösterilen bir ağaç, bir ikili arama ağacıdır. recursively, Alt ağaçlardan her da ikili arama ağacı sınırlaması uymalıdır: (1, 3, 4) alt ağaçtaki, 3 kökü, 1 <3 ve 4> 3'tür.
problemlerde tam metin dikkat edin - bir "ikili arama ağacı" a "ikili ağaç" farklıdır.
Herhangi düğüm n, n sol alt ağaçtaki her soyundan düğümün değeri n değerinden düşük olduğu ve sağ alt ağaçtaki her soyundan düğümün değerdir: Bir ikili arama ağacı aşağıdaki özelliği sergileyen ikili ağacın özel bir tür olduğunu n değerinden daha büyüktür.
Herkes yukarıdaki ikili ağacı ve ikili arama ağacına arasındaki fark hakkında açıkladığı gibi, sadece verilen ikili ağaç ikili arama ağacı olup olmadığını test etmek nasıl ekliyorum.
boolean b = new Sample().isBinarySearchTree(n1, Integer.MIN_VALUE, Integer.MAX_VALUE);
.......
.......
.......
public boolean isBinarySearchTree(TreeNode node, int min, int max)
{
if(node == null)
{
return true;
}
boolean left = isBinarySearchTree(node.getLeft(), min, node.getValue());
boolean right = isBinarySearchTree(node.getRight(), node.getValue(), max);
return left && right && (node.getValue()<max) && (node.getValue()>=min);
}
o size yardımcı olacaktır Umut. ben burada bu kayda değer olduğunu hissetti olarak Maalesef i konu sapan olup olmadığım.
İkili Ağacı iki çocuk (sol çocuk ve sağ Çocuk) ile ağacın özel bir şeklidir. Bu ağaç yapısında verilerin sadece temsilidir
İkili Arama Ağacı (BST) aşağıdaki koşulu aşağıdaki İkili Ağacı özel bir türüdür:
- Sol alt düğüm kendi üst Düğüm daha küçüktür
- Sağ alt düğüm kendi üst Düğüm daha büyüktür
Bir ikili ağaç çocukları asla ikiden fazla olan bir ağaçtır. Bir ikili arama ağacı sağ alt kök düğümün anahtarının daha büyük bir değere sahip gerekirken sol çocuk, kök düğümün anahtarının daha küçük bir değere sahip olması gerektiğini değişmez izler.
İkili arama ağacı: kastetmek inorder ikili ağaç üzerinde yapıldığında, girdiğimiz öğelerin İkili ağaç ait sıralı değerlerini almak: hayır sıralı düzen kastetmek her türlü bulunur
Belirli İkili Ağacı İkili arama ağacı burada var wheather yapılmadığını kontrol etmek için bir alternatif yaklaşım olduğunu.
In Ağacı Traverse Inorder Moda (yani Sol Çocuk -> Veli -> Sağ Çocuk), Mağaza geçilen Düğüm Veri geçici Variable içindeki diyelim temp sadece içine saklamadan önce, sıcaklığında akım düğümü'nü veri öncekinin ya da değil o zaman yüksektir ortalama hava kontrol . Sonra sadece kırmaya dışarı, Ağaç Arama Ağacı başka e kadar ucunu çapraz İkili değildir.
Aşağıda Java ile bir örnektir:
public static boolean isBinarySearchTree(Tree root)
{
if(root==null)
return false;
isBinarySearchTree(root.left);
if(tree.data<temp)
return false;
else
temp=tree.data;
isBinarySearchTree(root.right);
return true;
}
Dış temp değişkeni koruyun
İkili Ağacı bir açılımı veri yapısı oluşur düğümler olabilir sadece var iki çocuk başvuruları.
İkili arama ağacı ( BST diğer taraftan), özel bir şeklidir İkili Ağacı Her nerede veri yapısı düğümü karşılaştırılabilir değeri vardır ve sola iliştirilmiş küçük değerli çocuk ve daha büyük değerli çocuklar hakka bağlı.
Böylece, tüm BST 'ler vardır İkili Ağacı ancak sadece bazı İkili Ağacı ler de olabilir' BST . O bildir BST bir alt kümesidir İkili Ağacı .
Yani, İkili Ağacı daha genel bir veri yapısının daha İkili Arama Ağacı . Ve ayrıca söylemekte yarar var İkili arama ağacı bir olan sıralı jenerik için kurallar böyle seti vardır oysa ağaç İkili Ağacı .
İkili ağaç
Bir Binary Treeolan olmayan bir BST;
5
/ \
/ \
9 2
/ \ / \
15 17 19 21
İkili arama ağacı (Ağacı sıralı)
Bir İkili arama ağacı da olduğu İkili Ağacı ;
50
/ \
/ \
25 75
/ \ / \
20 30 70 80
İkili Arama Ağacı Düğüm özelliği
Ayrıca herhangi bildirmek üst düğüm olarak BST ;
Tüm sol düğümler üst düğümün değerinden daha küçük bir değere sahiptir. Üst örnekte, değerlerle düğümler {20, 25, 30} olan tüm solunda yer alan ( sol soyundan 50), 50 daha küçüktür.
Pekala düğümler üst düğümün değerinden daha büyük bir değere sahiptir. Üst örnekte, değerler {70, 75, 80} edilir ile düğümlerin her sağda yer ( sağ soyundan 50), 50 daha büyüktür.
Için böyle bir kural yok yoktur İkili Ağacı Düğüm. Için tek kural İkili Ağacı kendisini öz açıklıyor denilen neden olacak şekilde Düğüm iki evladımız yaşıyor ikili .
İkili ağaç
İkili ağaç olabilir şey 2 çocuk ve 1 ebeveyn vardır. Bu bağlantılı liste veya dizi olarak veya özel API ile uygulanabilir. Bunu içine daha spesifik kurallar eklemeye başladığınızda, daha olur uzman ağaç . En yaygın bilinen uygulama sağda solda ve daha büyük olanlar daha küçük düğüm eklemek, olmasıdır.
Örneğin, değer bir kök düğüm ile boyutu 9 ve yüksekliği 3 etiketlenmiş bir ikili ağaç, 2. ağacı olduğu dengesiz olup kriteri . https://en.wikipedia.org/wiki/Binary_tree
Örneğin, sol ağacında bir 6 çocuk {B, C, D, E, F, G} vardır. Sağdaki ikili ağaca dönüştürülebilir.
Ikili arama
İkili Arama düğüm zincirinde belirli öğeyi bulmak için kullanılan bir tekniktir / algoritmasıdır. İkili arama sıralı diziler üzerinde çalışır .
İkili ara hedef değeri karşılaştırır orta elemanı dizisinin; onlar eşitsiz ise, hedef yalan hangi yarım elimine edilir ve başarılı veya kalan yarısı boşalana kadar arama kalan yarısında devam ediyor. https://en.wikipedia.org/wiki/Binary_search_algorithm
Temsil eden bir ağaç ikili arama . Burada aranan dizi [20, 30, 40, 50, 90, 100], ve hedef değer 40'dır.
İkili arama ağacı
Bu ikili ağacın uygulamalarından biridir. Bu için uzmanlaşmıştır arama .
İkili arama ağacı ve B-tree veri yapılarını dayanmaktadır ikili arama .
İkili arama ağaçları (BST), bazen sipariş ya da sıralanmış denilen ikili ağaçlar, bir olan kabın belirli tip : bellekte (örneğin sayılar, isimler vb gibi) "öğeleri" saklamak veri yapıları. https://en.wikipedia.org/wiki/Binary_search_tree
kökünde 8 ile büyüklüğü 9 ve derinliği 3 A ikili arama ağacı,. Yaprakları çizilmiş değildir.
Ve nihayet tanınmış veri yapıları ve algoritmalar performans karşılaştırması için büyük bir şema uygulanmıştır:
Görüntü alınan Algoritmalar (4th Edition)
İkili arama ağacında, tüm düğümler belirli bir sırada düzenlenir - düğümleri bir kök düğümün solundaki o kök, ve bir düğümün sağındaki tüm düğümler değerinden daha büyük değerlere sahip daha küçük bir değere sahip kök.
ve düğümlerden herhangi çocuklarının sayısı en fazla iki olması durumunda ise bir ağaç bir ikili ağaç olarak adlandırılabilir.
Bir ağaç bir ikili arama ağacı olarak çağrılabilir ancak ve ancak düğümlerden herhangi çocuklarının sayısı en fazla ikidir ve sol çocuk sağ çocuğa daima daha küçüktür eğer.



















