CodeBlanks Logo Icon CodeBlanks

Ağaç türleri

Ağaç yapılarını türle ifade etmeyi öğrenirsin.

Ağaç türleri nedir?

Bir ağaç (tree) türü, her düğümün bir değeri ve bir alt düğüm dizisi içermesiyle tanımlanır. cocuklar: Dugum[] alanı yine aynı türü referans alır; böylece sınırsız dallanma mümkün olur. Dosya sistemleri, kategoriler ve organizasyon şemaları bu yapıyla modellenir.

type Dugum = {
  ad: string;
  cocuklar: Dugum[];
};

Ağaç derinliği

Ağaç türünde her düğüm kendi içinde alt düğümler taşıdığı için veri sınırsız derinlikte olabilir. cocuklar: Dugum[] sayesinde her alt düğüm yine aynı yapıya uyar. Yaprak düğümlerde cocuklar boş dizi olur ve dallanma biter.

Uygulama Ağaç nesnesi oluştur

Dugum adında bir recursive type tanımla: { ad: string; cocuklar: Dugum[] }. kok değişkeni Dugum türünde olsun ve değeri { ad: "kok", cocuklar: [{ ad: "cocuk1", cocuklar: [] }] } olsun. kok.ad değerini console.log ile yazdır.

Başlangıç kodu

index.ts
// Dugum adinda recursive type tanimla
// ad ve cocuklar alanlari olsun
// kok nesnesini bir cocukla tanimla
// kok.ad yazdir

Örnek çözüm

index.ts
type Dugum = {
  ad: string;
  cocuklar: Dugum[];
};
const kok: Dugum = { ad: "kok", cocuklar: [{ ad: "cocuk1", cocuklar: [] }] };
console.log(kok.ad);

Beklenen çıktı

kok

Soru ve cevaplar

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

1 Ağaç türünde yaprak (leaf) düğümün cocuklar alanı ne olur?

  • null
  • Yine kendisi
  • Boş dizi [] Doğru cevap
  • undefined

Açıklama: Yaprak düğümün çocuğu olmadığı için cocuklar alanı boş dizi [] olur; null veya undefined değil.

2 Çocuklar alanı türü

Soru
type Dugum = {
  ad: string;
  cocuklar: ____[];
};
Cevap
type Dugum = {
  ad: string;
  cocuklar: Dugum[];
};

Açıklama: Ağaç türünde cocuklar alanı yine Dugum[] türündedir; her alt düğüm aynı yapıya uyar.

3 Ağaç türü kavramları

Kavram Anlamı
cocuklar: Dugum[] Alt düğüm dizisi
ad: string Düğüm adı
yaprak Çocuksuz düğüm
Dugum Kendine başvuran tür

İleri seviye bölümündeki tüm dersler