Ferhat İşyapan

20.09.2025

Veri Yapısı Nedir?

Merhaba arkadaşlar! Eğer kod yazmaya yeni başladıysanız veya veri biliminde bir kariyer hedefliyorsanız, bu yazı tam size göre. Çünkü veri yapıları, kodlama dünyasının en temel, en ama en kritik konularından biridir.

Veri yapıları, kodlama dünyasının alfabesi gibidir. Onları bilmeden büyük ve etkili bir kod yazmak, bina yaparken tuğlaların ne işe yaradığını bilmemeye benzer.

Şöyle düşünün: Elinizde bir sürü kitap var ve bunları bir yere koymanız gerekiyor. Kitapları rastgele bir yere yığabilir miydiniz? Yığabilirsiniz. Ama sonra istediğiniz bir kitabı bulmak için bütün yığını dağıtmanız gerekirdi, değil mi? İşte bu, dağınık veriye bir örnek.

1. Diziler (Arrays)

Diziler, en basit ve en yaygın kullanılan veri yapılarından biridir. Aklınıza, yan yana dizilmiş, numaralı kutular gelsin. Her bir kutuya bir veri koyabilirsiniz.

🏠 Günlük Hayat Örneği

Bir otoparktaki numaralı park yerleri gibi. "5 numaralı parka git" dediğinizde tam olarak nereye gideceğinizi bilirsiniz.

💻 Python Kod Örneği

# Diziler nasıl kullanılır? sayilar = [10, 20, 30, 40, 50] print(sayilar[2]) # Çıktı: 30 (anında erişim!) # Yeni eleman ekleme sayilar.append(60)

Artıları:
✅ Çok hızlı erişim
✅ Bellek kullanımı verimli

Eksileri:
❌ Sabit boyut (bazı dillerde)
❌ Araya eleman eklemek yavaş

2. Bağlı Listeler (Linked Lists)

Bağlı listeler, dizilerin sabit boyut sorununa bir çözümdür. Her düğüm, veri ve bir sonraki düğümün adresini içerir.

🗝️ Günlük Hayat Örneği

Bir hazine avındaki ipuçları gibi. İlk ipucu size ikinci ipucunun yerini söyler, ikinci ipucu üçüncüye...

💻 Python Kod Örneği

class Node: def __init__(self, data): self.data = data self.next = None # Bağlı liste oluşturma head = Node("İlk") head.next = Node("İkinci") head.next.next = Node("Üçüncü")

Artıları:
✅ Dinamik boyut
✅ Ekleme/çıkarma hızlı

Eksileri:
❌ Sıralı erişim gerekli
❌ Extra bellek kullanımı

3. Sözlükler (Dictionaries)

Sözlükler, veriyi anahtar-değer çiftleri şeklinde saklar. Hash table sistemiyle çok hızlı arama sağlar.

📱 Günlük Hayat Örneği

Telefon rehberiniz. Kişinin adını (anahtar) giriyorsunuz, telefon numarasını (değer) alıyorsunuz.

💻 Python Kod Örneği

kişi = { "isim": "Ali Veli", "yaş": 25, "şehir": "İstanbul" } print(kişi["isim"]) # Ali Veli (anında!) kişi["email"] = "ali@example.com"

Artıları:
✅ Çok hızlı arama
✅ Dinamik boyut

Eksileri:
❌ Extra bellek
❌ Anahtarlar benzersiz olmalı

📊 Performans Karşılaştırması

İşlem
Diziler
Bağlı Listeler
Sözlükler
Erişim
🟢 O(1)
🔴 O(n)
🟢 O(1)
Arama
🔴 O(n)
🔴 O(n)
🟢 O(1)
Ekleme
🟡 O(n)
🟢 O(1)
🟢 O(1)

🤔 Hangi Durumda Hangisini Kullanmalı?

  • 📊 Diziler: Veri boyutu belli, hızlı erişim gerekli
  • 🔗 Bağlı Listeler: Veri boyutu değişken, çok ekleme/çıkarma var
  • 📚 Sözlükler: Anahtar-değer ilişkisi, hızlı arama kritik

Özetle...

Gördüğünüz gibi arkadaşlar, veri yapıları aslında o kadar da korkutucu değil. Her birinin kendine özgü artıları ve eksileri var. Doğru veri yapısını seçmek, kodunuzun performansını doğrudan etkiler.

Umarım bu yazı, bu konuya yeni başlayanlar için harika bir başlangıç noktası olmuştur. Bir sonraki yazıda görüşmek üzere. Kendinize iyi bakın ve bol bol kod yazın!

🎥 Video İçeriklerimiz için YouTube'dan Takip Edin!

Bu konuları video formatında da açıklıyoruz. Daha fazla veri bilimi ve programlama içeriği için Verinin Mutfağı kanalımızı takip etmeyi unutmayın!

📺 Verinin Mutfağı YouTube Kanalı