2. adım
Veri Yapıları
Veriyi nasıl tuttuğun, programının ne kadar hızlı çalışacağını belirler. Mülakatların ve sonraki bütün derslerin ortak noktası.
Önce bunları bilProgramlamaya Giriş
- Diziler ve bağlı listeler
- Yığın ve kuyruk
- Hash tabloları
- Ağaçlar ve ikili arama ağacı
- Heap
- Graflar
- Big-O
Neden önemli
Aynı problemi bir listeyle de çözebilirsin, bir hash tablosuyla da; biri bir saniye, öteki bir saat sürer. Veritabanı indeksleri ağaçtır, işletim sisteminin iş sırası kuyruktur, harita uygulamaları graftır. Bu ders hem mülakatların hem de sonraki derslerin ortak dili.
Bilmen gerekenler
- Dizi ve bağlı liste: hangisinde ekleme, silme, erişim ucuzdur.
- Yığın (stack) ve kuyruk (queue); geri al tuşu ve yazıcı kuyruğu gibi örnekler.
- Hash tablosu: çakışma (collision) nasıl çözülür, neden ortalamada O(1).
- Ağaçlar, ikili arama ağacı, dengeli ağaç fikri (AVL, kırmızı-siyah).
- Heap ve öncelik kuyruğu.
- Graf gösterimleri: komşuluk matrisi ve komşuluk listesi.
- Big-O ile karmaşıklık analizi.
Alıştırma ve proje
- Her yapıyı en az bir kez sıfırdan kendin yaz; kütüphaneyi ancak ondan sonra kullan.
- VisuAlgo gibi görselleştirme sitelerinde adımları izle.
- LeetCode'un "Easy" sorularıyla başla; her yapıdan 5-10 soru çöz.
Sık yapılan hatalar
- Yapıları ezberleyip "hangi problemde hangisi" sorusunu çalışmamak.
- Big-O'yu sadece formül sanmak; kodundaki döngülere bakıp tahmin etmeyi öğren.
- İşaretçili yapılarda (bağlı liste, ağaç) kâğıda çizmeden kod yazmak.