- 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
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.)
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Çözümü gizle
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.
- 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.
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Çözümü gizle
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.
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Çözümü gizle
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.
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ı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.
- 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.
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Çözümü gizle
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 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Çözümü gizle
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.
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Çözümü gizle
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.
- 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.
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Çözümü gizle
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.
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']Ö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.