Stack (Yığın) Veri Yapısı

📚 Stack (Yığın) Veri Yapısı 🎯 Stack Nedir? Stack (Yığın), Last-In-First-Out (LIFO) prensibiyle çalışan soyut bir veri yapısıdır. Yani son eklenen eleman, ilk çıkarılır. Günlük Hayattan Örnek Bir tabak yığınını düşünün: Yeni tabakları en üste koyarsınız Tabak alırken de en üsttekini alırsınız En alttaki tabağa ulaşmak için üstteki tüm tabakları kaldırmanız gerekir ┌───────┐ │ 3 │ ← En üst (Top) - İlk çıkarılacak ├───────┤ │ 2 │ ├───────┤ │ 1 │ ← En alt └───────┘ 🔧 Temel Operasyonlar 1️⃣ push(E e) - Ekleme Element yığının en üstüne eklenir. ...

November 4, 2025 · 4 min · Emrullah Enis Çetinkaya

Queue (Kuyruk) Veri Yapısı

Queue (Kuyruk) Veri Yapısı 📋 Genel Tanım ve Kavram Queue (Kuyruk), bilgisayar bilimlerinde kullanılan temel veri yapılarından biridir ve FIFO (First-In-First-Out) prensibine göre çalışır. 💡 Gerçek Hayat Analojisi: Market kasasındaki kuyruk gibi düşünün. İlk sıraya giren müşteri, ilk hizmet alan müşteridir. Yeni müşteriler her zaman kuyruğun sonuna eklenir. Temel Prensip İlk eklenen eleman, ilk çıkarılan elemandır Elemanlar sadece bir uçtan eklenir (back/rear) Elemanlar sadece diğer uçtan çıkarılır (front) ┌───────────────────────────────────────────┐ │ QUEUE │ │ │ │ front/head back/rear/tail │ │ ↓ ↓ │ │ [a] → [b] → [c] → [d] → [e] │ │ ↑ ↑ │ │ ÇIKIŞ GİRİŞ │ │ (dequeue) (enqueue) │ └───────────────────────────────────────────┘ 🔧 Temel Operasyonlar Operasyon Açıklama Karmaşıklık enqueue(e) Kuyruğun sonuna eleman ekler O(1) dequeue() Kuyruğun başındaki elemanı çıkarır ve döndürür O(1) first() / peek() Başındaki elemana bakar (çıkarmaz) O(1) size() Eleman sayısını döndürür O(1) isEmpty() Kuyruğun boş olup olmadığını kontrol eder O(1) 💻 Bağlı Liste ile İmplementasyon Neden Bağlı Liste? ✅ Dinamik boyut - önceden boyut belirlemeye gerek yok ✅ Tüm operasyonlar O(1) zamanda çalışır ✅ Overflow problemi yok ...

November 4, 2025 · 5 min · Emrullah Enis Çetinkaya

🔍 Arama Algoritmaları

🔍 Arama Algoritmaları 🎯 Temel Problem Arama nedir? Çok sayıda benzer nesne içinden belirli özelliklere sahip olanları tespit etme işlemidir. Günlük Hayattan Örnekler Problem Türü Pratik Kullanım 🔤 Pattern Matching Google’da kelime arama, metin editörlerinde “Bul” özelliği 📊 Veri Tabanı Sorgusu Öğrenci bilgi sisteminde öğrenci bulma, envanter kontrolü 🏗️ Temel Yapı Taşları Element Sınıfı Tasarımı class Element { int searchKey; // Anahtar alan (örn: 2019280045) String name; // İsim String surname; // Soyisim String department; // Bölüm } Veri Koleksiyonu Oluşturma final int MAXELEM = 1000; Element[] database = new Element[MAXELEM]; 📌 Hedef: database[i].searchKey == arananAnahtar şartını sağlayan elemanı bulmak ...

November 4, 2025 · 7 min · Emrullah Enis Çetinkaya

Hash Tabloları

Hash Tabloları 📌 Neden Hash Tabloları? Binary Search’ün Özellikleri: Worst-case: O(log n) - çok verimli Gereksinimler: Sıralı veri + Doğrudan erişim Sıralı ekleme: O(n) - pratik olarak yavaş Hash Tabloları ile İyileştirme: Ekleme: Genelde O(1), worst-case O(n) Arama: Genelde O(1), worst-case O(n) 🔑 Hash Fonksiyonu Hash fonksiyonu, bir anahtarı (key) tablo indeksine dönüştürür. String için Örnek Hash Fonksiyonu public static int hash(String wort) { int m = 13; // Tablo boyutu (asal sayı olmalı) int k = 0; for (int i = 0; i < wort.length(); i++) { k += (int) wort.charAt(i); // ASCII/Unicode değerlerinin toplamı } return k % m; // Modulo ile indeks hesaplama } Hash Fonksiyonunun Özellikleri Uzay U (Sonsuz anahtar uzayı) ↓ Hash Fonksiyonu h(k) ↓ Hash Tablosu T [0...m-1] (Sonlu alan) Evrensel küme (U): Tüm olası anahtarlar Anahtar kümesi (S): Gerçekte kullanılan anahtarlar Hash tablosu (T): Sabit boyutlu m elemanlı dizi Önemli: Hash fonksiyonları genelde injektif değildir (farklı anahtarlar aynı indeksi verebilir) ⚠️ Önemli Not Tablo boyutu asal sayı olmalı! Bu, daha iyi dağılım sağlar. ...

November 4, 2025 · 3 min · Emrullah Enis Çetinkaya

Map ve Hash Table Nedir? (Java ile Açıklamalı)

🗺️ Map (Harita) ve Hash Table (Karma Tablo) Kapsamlı Rehber: Veri yapılarının temel mantığı, implementasyon yöntemleri, avantajları, dezavantajları ve karmaşıklıkları 📋 İçindekiler Giriş: Map Nedir? Temel Map İşlemleri Implementasyon Yöntemleri Hash Table: Temel Yapı ve Adımlar Çakışmalar (Kollisionen) Zaman Karmaşıklığı Karşılaştırması Avantaj ve Dezavantajlar Sonuç ve Kullanım Önerileri 🎯 Giriş: Map (Harita) Nedir? Map (Harita), anahtar-değer (key-value) çiftlerini depolamak için kullanılan soyut bir veri yapısıdır. Bu yapıda en önemli kural: ...

November 13, 2025 · 10 min · Enis