CodeBlanks Logo Icon CodeBlanks

BST kuralı

Sol çocuk küçük, sağ çocuk büyük kuralıyla dizilen ikili arama ağacını öğrenirsin.

BST özelliği

İkili arama ağacı (binary search tree, BST), her düğümün sol alt ağacındaki tüm değerlerin düğüm değerinden küçük, sağ alt ağacındaki tüm değerlerin büyük olduğu bir ikili ağaçtır.

Bu özellik sayesinde arama, ekleme ve silme O(log n) olur (dengeliyse). Inorder dolaşım artan sıra verir.

BST, sıralı veri üzerinde hızlı arama için temel bir yapıdır. Dengesizse O(n)'e düşer.

BST özelliği

BST özelliği recursivetir: her alt ağaç da bir BST'dir. Sol alt ağacın tüm değerleri kökten küçük, sağ alt ağacın tüm değerleri kökten büyüktür.

Bu, aramada ikili arama mantığını uygular: hedef kökten küçükse sola, büyükse sağa gidilir. Her adımda arama alanı yarıya iner.

Dengeli BST'nin yüksekliği log n; her arama en çok bu kadar adımda biter.

Uygulama BST kontrolü

is_bst(node, lo, hi) yaz. Düğüm değeri (lo, hi) aralığında mı, recursive kontrol. root = Node(5); root.left = Node(3); print(is_bst(root, -9999, 9999)) ile True yazdır.

Başlangıç kodu

solution.py
def is_bst(node, lo, hi):
    # BST kontrolü

Örnek çözüm

solution.py
class Node:
    def __init__(self, val):
        self.val = val
        self.left = None
        self.right = None
def is_bst(node, lo, hi):
    # BST kontrolü
    if node is None:
        return True
    if not (lo < node.val < hi):
        return False
    return is_bst(node.left, lo, node.val) and is_bst(node.right, node.val, hi)
root = Node(5)
root.left = Node(3)
print(is_bst(root, -9999, 9999))

Beklenen çıktı

True

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 BST'de sol alt ağaç değerleri nasıldır?

  • Düğümden büyük
  • Düğümden küçük Doğru cevap
  • Eşit
  • Rastgele

Açıklama: Düğümden küçük

2 Arama yönü

Soru
if target ____node.val: go left
Cevap
if target <node.val: go left

Açıklama: < doğru.

3 BST kuralı: kavramları eşleştir

Kavram Anlamı
Sol alt Küçükler
Sağ alt Büyükler
Inorder Artan sıra
Dengeli O(log n)

Orta seviye bölümündeki tüm dersler