İçeriğe geç
Educora
Orta9. sınıf22 dk21 / 59

Ağaç bilgi modeli

Ağaç, hiyerarşinin grafik modelidir: kök, düğüm, yaprak, seviye; soy ağacı, sınıflandırma ve dosya sistemi ağaçları, dosyanın tam adı; döngüsüz bir graf olarak ağaç (kenar = düğüm − 1), yaprak ve yol sayımı, ağacın iç içe liste olarak yazılışı.

Kendini test et
Bu derste öğreneceklerin
  • Ağacın öğelerini — kök, düğüm, ebeveyn, çocuk, yaprak, seviye — tanımak ve saymak.
  • Soy ağacı, sınıflandırma ve dosya sistemi ağaçlarını okumak, dosyanın tam adını yazmak.
  • Ağacı döngüsüz bağlantılı bir graf olarak açıklamak ve «kenar = düğüm − 1» kuralını uygulamak.
  • Ağacı iç içe listeye ve parantezli yazıma dönüştürmek, tersini de yapmak.

Aile albümündeki soy ağacı, bilgisayardaki klasörler, bir kitabın içindekiler sayfası, bir spor turnuvasının eşleşme tablosu — hepsinin yapısı aynıdır: bir başlangıçtan dallar ayrılır, dallardan yine dallar. Böyle bir yapıya hiyerarşi, onun grafik modeline ise ağaç denir. Ad tesadüf değildir: resim ters çevrilmiş bir ağaca benzer — kökü yukarıda, yaprakları aşağıda.

«Modeller ve modelleme» dersinde ağacı grafik bilgi modelleri arasında gördük, «Tablo bilgi modeli: mantık problemlerinin tabloyla çözümü» dersinde ise tablolarla çalıştık. Tablo nesneleri yan yana dizer; ağaç ise kimin kime bağlı olduğunu ve neyin neyin parçası olduğunu gösterir.

Ağacın öğeleri

Tanım
Ağaç

Nesneler arasındaki hiyerarşik (bağlılık) ilişkileri gösteren grafik bilgi modeli. Ağacın bir kökü vardır; kök dışındaki her düğümün tam bir ebeveyni olur.

  • Kök — en üstteki düğüm; ebeveyni yoktur.
  • Düğüm — ağacın herhangi bir öğesi; düğümleri birleştiren çizgilere kenar (dal) denir.
  • Ebeveyn ve çocuk — bir kenarla doğrudan bağlı üst ve alt düğümler. Çocuk sayısı istenildiği kadar olabilir.
  • Yaprak — çocuğu olmayan düğüm; en az bir çocuğu olan düğüm iç düğümdür.
  • Seviye — düğümden köke kadar olan kenar sayısı: kök 0. seviyede, çocukları 1. seviyededir vb. En büyük seviye ağacın yüksekliğidir. (Bazı kitaplar kökü 1. seviye sayar — o zaman bütün numaralar bir fazla olur; sorunun koşuluna bak.)
Seviye0123ABCDEFGHKLMNkökiç düğümyaprak
C düğümü 1. seviyede olsa da yapraktır: yaprak en altta olan değil, çocuğu olmayan düğümdür.
Ağacı okuyoruz

Resimdeki ağaca göre bul: 1) düğüm, yaprak ve iç düğüm sayısını; 2) 2. seviyedeki düğümleri ve ağacın yüksekliğini; 3) G’nin ebeveynini ve B’nin bütün torunlarını (çocukları, onların çocukları …).

Çözümü göster
1) Düğümler: A, B, C, D, E, F, G, H, K, L, M, N — 12. Yapraklar: C, F, H, K, L, M, N — 7. İç düğümler: 12 − 7 = 5 (A, B, D, E, G).
2) 2. seviye: E, F, G. En alt seviye 3 → yükseklik 3.
3) G’nin ebeveyni D’dir. B’nin torunları: E, F, H, K — 4 düğüm.
m = n − 1
burada:
  • nağacın düğüm sayısı
  • mkenar (dal) sayısı

Kök dışındaki her düğüm ebeveynine tam bir kenarla bağlanır; bu yüzden kenar sayısı düğüm sayısından bir eksiktir.

Kenarlar ve düğümler

1) Resimdeki ağaçta kaç kenar var?
2) Bir ağacın 20 kenarı var. Kaç düğümü vardır?
3) 7 köşeli ve 7 kenarlı bağlantılı bir graf ağaç olabilir mi?
4) Bir ağaçta 15 düğüm var, 9’u yaprak. Yaprak olmayan düğümlerin toplam çocuk sayısı kaçtır?

Çözümü göster
1) m = 12 − 1 = 11 (resimde sayarak kontrol et).
2) n = m + 1 = 21.
3) Hayır: 7 düğümlü ağacın 6 kenarı olur. Fazladan kenar mutlaka bir döngü oluşturur.
4) Her çocuğun tam bir ebeveyni var, kökün yok → toplam çocuk sayısı 15 − 1 = 14 (kenar sayısı kadar). Yaprak sayısı burada gerekmez.

Soy ağaçları ve sınıflandırma ağaçları

Soy ağacı bir kişinin soyunu gösterir: kök ata, her seviye bir kuşaktır (çocuklar, torunlar, torunların çocukları). Dikkat: her çocuğun iki ebeveyni de çizilirse resim artık ağaç olmaz, çünkü bir düğümün iki ebeveyni olur. Ağaç, bir kişinin soyu gösterildiğinde elde edilir.

TahirKamalSamirLeylaElvinAyselMuradNigarRaufFidanTuralZaurSevda
Her seviye bir kuşaktır: 1. seviye çocuklar, 2. seviye torunlar, 3. seviye torunların çocukları.
Soy ağacıyla ilgili sorular

Soy ağacına göre cevapla: 1) Tahir’in kaç torunu var? 2) Kaç torununun çocuğu var? 3) Kaç kişinin çocuğu yok? 4) Zaur’un dedesi kim? 5) Ağaçta kaç kenar var?

Çözümü göster
1) Torunlar 2. seviyededir: Elvin, Aysel, Murad, Nigar, Rauf, Fidan — 6.
2) Torunların çocukları 3. seviyededir: Tural, Zaur, Sevda — 3.
3) Yapraklar: Aysel, Nigar, Rauf, Fidan, Tural, Zaur, Sevda — 7.
4) Zaur’un ebeveyni Murad, Murad’ın ebeveyni Samir → dede Samir’dir.
5) Düğüm sayısı 1 + 3 + 6 + 3 = 13 → kenar sayısı 13 − 1 = 12.

Sınıflandırma ağacı bir kavramı türlere ayırır: kökte genel kavram, aşağı indikçe daha özel türler bulunur. Ağaç çizilmeden de yazılabilir — iç içe liste olarak: her çocuk ebeveyninden bir adım içeride yazılır. Bir kitabın içindekiler sayfası (1, 1.1, 1.2, 2 …) da böyle bir listedir. Aşağıda yazılımın sınıflandırması iç içe liste olarak verilmiştir.

Text
Yazılım
├── Sistem yazılımı
│   ├── İşletim sistemleri
│   ├── Yardımcı programlar
│   └── Sürücüler
├── Uygulama yazılımı
│   ├── Metin düzenleyiciler
│   ├── Elektronik tablolar
│   ├── Grafik düzenleyiciler
│   ├── Masaüstü yayıncılık sistemleri
│   └── Veri tabanı yönetim sistemleri
└── Programlama araçları
Yazılımın sınıflandırması: 12 düğüm, 11 kenar, 9 yaprak. «Programlama araçları» dalı burada bölünmediği için yapraktır.

Dosya sistemi ağacı ve dosyanın tam adı

Diskteki dosyalar da ağaç biçiminde yerleşir. Kök, diskin kök klasörüdür (C:\); iç düğümler klasörler, yapraklar ise dosyalar ve boş klasörlerdir. Kökten herhangi bir dosyaya giden yol tektir, çünkü ağaçta her düğümün bir ebeveyni vardır. Bu yola dosyanın yolu, yol ile dosya adının birlikte yazılışına ise dosyanın tam adı denir. Windows’ta klasörler ters eğik çizgi \ ile ayrılır. Dosya ve klasörlerle çalışma için «Yazılım, işletim sistemi ve dosyalar» dersine bak.

C:\DerslerBilişimmodel.docxtree.pyMatematiktest.xlsxResimler2025sea.jpg2026← diskin kök klasörü← dosya her zaman yapraktır← boş klasör de yapraktır
tree.py dosyasının tam adı: C:\Dersler\Bilişim\tree.py
disk:\klasör₁\klasör₂\…\ad.uzantı
burada:
  • disk:\diskin kök klasörü, örneğin C:\
  • klasör₁ … klasörₖkökten dosyaya giden yoldaki klasörler, yukarıdan aşağıya
  • ad.uzantıdosyanın adı ve uzantısı

Dosyanın tam adı: kökten dosyaya giden tek yol.

Tam adlar ve klasörler arasında gezinme

Resimdeki ağaca göre: 1) test.xlsx dosyasının tam adını yaz. 2) Kullanıcı C:\Dersler\Bilişim klasöründeydi, bir seviye yukarı çıktı, sonra Matematik klasörüne girdi. Şimdi hangi klasörde? 3) Kök klasör dışında kaç klasör ve kaç dosya var? Ağacın kaç yaprağı ve kaç kenarı var? 4) sea.jpg dosyası kaçıncı seviyede?

Çözümü göster
1) C:\Dersler\Matematik\test.xlsx
2) Bir seviye yukarı → C:\Dersler; sonra Matematik → C:\Dersler\Matematik.
3) Klasörler: Dersler, Bilişim, Matematik, Resimler, 2025, 2026 — 6; dosya 4. Yapraklar: 4 dosya ve boş 2026 klasörü — 5. Düğüm 1 + 6 + 4 = 11 → kenar 10.
4) C:\ — 0, Resimler — 1, 2025 — 2, sea.jpg — 3. seviye.
Bir klasör taşınınca tam ad nasıl değişir?

Bir dosyanın tam adı C:\Okul\9A\Fizik\test.docx idi. Öğrenci Fizik klasörünü tüm içeriğiyle birlikte Okul klasörüne taşıdı. Dosyanın yeni tam adı nedir?
A) C:\Okul\9A\test.docx B) C:\Fizik\test.docx C) C:\Okul\Fizik\test.docx D) C:\Okul\Fizik\9A\test.docx E) C:\9A\Fizik\test.docx

Çözümü göster
Ağaçta Fizik dalı 9A’dan koparılıp Okul klasörüne «aşılanır»: artık ebeveyni Okul’dur. Dalın içindeki her şey (test.docx de) onunla birlikte gider.
Yol: C:\ → Okul → Fizik → test.docx.
Doğru cevap: C.

Ağaç, döngüsüz bir graftır

Graf dilinde ağaç, bağlantılı ve döngüsüz bir graftır: herhangi iki köşe bir yolla bağlıdır ama kapalı bir halka (döngü) yoktur. Buradan üç yararlı sonuç çıkar: herhangi iki düğüm arasındaki yol tektir; herhangi bir kenar silinirse ağaç iki parçaya ayrılır; yeni bir kenar eklenirse döngü oluşur. Graflar hakkında ayrıntılar bir sonraki derste: «Graf bilgi modeli: komşuluk matrisi ve yol sayısı».

Ağaç parantezlerle de yazılabilir: bir düğümden sonra çocukları parantez içinde, virgülle ayrılarak yazılır. Resimdeki ağaç şöyle yazılır: A(B(E(H, K), F), C, D(G(L, M, N))). Arkasında parantez olmayan harfler yapraklardır.

Yollar, uzaklıklar ve parantezli yazım

1) Resimdeki ağaçta H’den M’ye ve F’den K’ye giden yollarda kaç kenar var?
2) Kökten yapraklara kaç farklı yol vardır?
3) Bir ağaç K(A(X, Y), B, C(Z)) biçiminde veriliyor. Kaç düğümü ve kaç yaprağı var, yüksekliği kaç, kökün çocukları hangileri?

Çözümü göster
1) İki düğümden ortak ataya kadar çıkarız. H → E → B → A → D → G → M: 6 kenar. F → B → E → K: 3 kenar (ortak ata B).
2) Her yaprağa kökten tek bir yol gider → yol sayısı yaprak sayısına eşittir: 7.
3) Düğümler: K, A, X, Y, B, C, Z — 7; yapraklar X, Y, B, Z — 4; kökün çocukları A, B, C; yükseklik 2 (X, Y, Z 2. seviyede); kenar 7 − 1 = 6.
n = 1 + k + k² + … + kʰ, yarpaqlar = kʰ
burada:
  • kher iç düğümün çocuk sayısı (hepsinde aynı)
  • hağacın yüksekliği; bütün yapraklar h seviyesinde
  • ntoplam düğüm sayısı

Dolu ağaç: her seviyede düğüm sayısı k katına çıkar. k = 2 için n = 2ʰ⁺¹ − 1.

Dolu ağaçlar: haber ve turnuva

1) Yüksekliği 3 olan dolu ikili ağacın (k = 2) kaç yaprağı ve kaç düğümü vardır?
2) Aysel bir haberi 3 arkadaşına anlattı, her biri 3 yeni kişiye, onlar da 3 yeni kişiye. 3 aşamadan sonra haberi kaç kişi biliyor (Aysel dahil)?
3) Eleme usulü bir turnuvada 16 takım var: her maçı kaybeden elenir. Kaç maç oynanır?

Çözümü göster
1) Yaprak 2³ = 8, düğüm 1 + 2 + 4 + 8 = 15 = 2⁴ − 1.
2) Seviyelere göre: 1 + 3 + 9 + 27 = 40 kişi.
3) Maçlar, yaprakları takımlar olan ağacın iç düğümleridir: 8 + 4 + 2 + 1 = 15. Kısa yol: her maç bir takımı eler; tek bir kazanan kalana kadar 16 − 1 = 15 takım elenmelidir.
Python
tree = {
    "A": ["B", "C", "D"],
    "B": ["E", "F"],
    "D": ["G"],
    "E": ["H", "K"],
    "G": ["L", "M", "N"],
}

def show(node, level):
    print("    " * level + node)
    for child in tree.get(node, []):
        show(child, level + 1)

show("A", 0)
nodes = {"A"} | {c for kids in tree.values() for c in kids}
leaves = [n for n in sorted(nodes) if n not in tree]
edges = sum(len(kids) for kids in tree.values())
print("nodes:", len(nodes), "edges:", edges)
print("leaves:", leaves)
▸ Beklenen çıktı
A
    B
        E
            H
            K
        F
    C
    D
        G
            L
            M
            N
nodes: 12 edges: 11
leaves: ['C', 'F', 'H', 'K', 'L', 'M', 'N']
Ağacın bilgisayar modeli: sözlükte her düğümün çocukları yazılıdır. show fonksiyonu ağacı iç içe liste olarak yazdırır; her seviye 4 boşluk içeride. Çocuğu olmayan düğümler (sözlükte anahtarı yok) yapraklardır.
Etkileşimli
Simülasyon yükleniyor…
Grafta döngüler var ama ondan bir ağaç «kesip çıkarmak» mümkündür. BFS (genişlik öncelikli arama) A’dan başlar ve köşeleri seviye seviye açar. Sonunda seçilen kenarlar 9 köşeli ve 8 kenarlı bir ağaç oluşturur: kök A; 1. seviye B, C; 2. seviye D, I, H; 3. seviye E, F; 4. seviye G. Grafın kalan 13 − 8 = 5 kenarı ağaca girmez — her biri bir döngü oluştururdu.

Önemli noktalar

  • Ağaç, hiyerarşinin grafik modelidir: bir kök vardır, diğer her düğümün bir ebeveyni olur.
  • Yaprak, çocuğu olmayan düğümdür; seviye, köke kadar olan kenar sayısıdır.
  • n düğümlü ağaçta n − 1 kenar vardır; ağaç, bağlantılı ve döngüsüz bir graftır.
  • İki düğüm arasındaki yol tektir; kökten yapraklara giden yol sayısı yaprak sayısı kadardır.
  • Dosyanın tam adı, kök klasörden dosyaya giden yoldur: C:\klasör\…\ad.uzantı.
  • Ağaç iç içe liste veya parantezli yazım (A(B, C)) olarak da verilebilir.

Kendini test et

12 soru. Her doğru cevap XP kazandırır.

1 / 12
Ağaçta çocuğu olmayan düğüme ne denir?