Veri yapıları, bilgisayar bilimlerinin en temel konularından biridir. Verilerin bilgisayar belleğinde nasıl organize edileceği, nasıl depolanacağı ve nasıl işleneceği konularını ele alır. Doğru veri yapısı seçimi, yazılımın performansını, bellek kullanımını ve genel verimliliğini doğrudan etkiler.
Bu makalede, temel veri yapılarından ileri düzey veri yapılarına kadar geniş bir yelpazede inceleme yapacak, her bir yapının avantajlarını, dezavantajlarını ve kullanım senaryolarını detaylı olarak ele alacağız.

Tarihsel Gelişim: Veri yapıları kavramı, 1960'larda bilgisayar biliminin gelişmeye başlamasıyla ortaya çıktı. İlk önemli veri yapısı çalışmaları, Donald Knuth'un "The Art of Computer Programming" serisinde yer aldı. Günümüzde, big data ve yapay zeka uygulamalarıyla birlikte veri yapılarının önemi daha da artmıştır.
Temel Kavramlar ve Terminoloji
Veri Yapısı Terimleri
- Düğüm (Node): Veri yapısındaki her bir eleman
- Pointer (İşaretçi): Bir düğümden diğerine referans
- Kök (Root): Ağaç yapısının başlangıç noktası
- Yaprak (Leaf): Alt elemanı olmayan düğüm
- Derinlik (Depth): Bir düğümün köke olan uzaklığı
Karmaşıklık Analizi Terimleri
- Big O Notation: Algoritma performans ölçümü
- Time Complexity: Zaman karmaşıklığı
- Space Complexity: Alan karmaşıklığı
- Best Case: En iyi durum senaryosu
- Worst Case: En kötü durum senaryosu
1. Diziler (Arrays)
Diziler ve Çeşitleri

1.1 Tek Boyutlu Diziler
// C++ örneği int arr[5] = {1, 2, 3, 4, 5}; // Java örneği int[] arr = new int[5];
1.2 Çok Boyutlu Diziler
// 2D Array örneği int matrix[3][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
1.3 Dinamik Diziler
// C++ vector örneği vectordynamicArray; dynamicArray.push_back(1);
İşlem | Karmaşıklık | Açıklama |
---|---|---|
Erişim | O(1) | İndeks ile doğrudan erişim |
Arama | O(n) | Sıralı olmayan dizide lineer arama |
Ekleme | O(n) | Araya ekleme durumunda kaydırma gerekir |
Silme | O(n) | Silme sonrası kaydırma gerekir |
Kullanım Senaryoları:
- Matris işlemleri
- Görüntü işleme
- Oyun programlama (2D/3D koordinat sistemleri)
- Veritabanı indeksleme
2. Bağlı Listeler (Linked Lists)
Bağlı Liste Yapıları
2.1 Tek Yönlü Bağlı Liste

class Node { int data; Node next; Node(int d) { data = d; next = null; } }
2.2 Çift Yönlü Bağlı Liste

class Node { int data; Node prev; Node next; Node(int d) { data = d; prev = null; next = null; } }
2.3 Dairesel Bağlı Liste
Dairesel bağlı listelerde son düğüm ilk düğüme bağlanır. Bu yapı özellikle döngüsel işlemlerde kullanışlıdır.
Kullanım Alanları:
- İşletim sistemi görev zamanlayıcısı
- Oyun programlamada tur sırası
- Müzik çalar playlist yapısı

Bağlı Liste Operasyonları
Operasyon | Kod Örneği | Karmaşıklık |
---|---|---|
Başa Ekleme | newNode.next = head; head = newNode; |
O(1) |
Sona Ekleme | current.next = newNode; |
O(n) |
Araya Ekleme | newNode.next = current.next; current.next = newNode; |
O(n) |
3. Yığınlar ve Kuyruklar
Yığın (Stack)

- LIFO prensibi
- Push/Pop işlemleri
- Geri alma işlemleri
Kuyruk (Queue)

- FIFO prensibi
- Enqueue/Dequeue
- İşlem sıralaması
4. Ağaçlar ve Graflar

Ağaç Yapıları:
- İkili Ağaç
- AVL Ağacı
- B-Ağacı
Graf Türleri:
- Yönlü Graf
- Yönsüz Graf
- Ağırlıklı Graf
Veri Modelleri
Model Türü | Özellikleri | Kullanım Alanları | Örnekler |
---|---|---|---|
İlişkisel Model |
|
Bankacılık, ERP sistemleri | MySQL, PostgreSQL |
NoSQL Model |
|
Büyük veri, Gerçek zamanlı sistemler | MongoDB, Cassandra |
Hiyerarşik Model |
|
Dosya sistemleri, XML | IMS, XML veritabanları |
Veri Yapıları ve Algoritma İlişkisi
Yaygın Algoritmalar ve Uygun Veri Yapıları
Algoritma | Veri Yapısı |
---|---|
Arama Algoritmaları | İkili Ağaç, Hash Tablosu |
Graf Algoritmaları | Komşuluk Matrisi, Komşuluk Listesi |
Sıralama Algoritmaları | Dizi, Bağlı Liste |

Veri Yapısı Seçiminde Dikkat Edilecek Noktalar
- Verinin boyutu ve büyüme hızı
- Erişim sıklığı ve şekli
- Bellek kısıtlamaları
- İşlem gereksinimleri
- Uygulama türü ve amacı
Uygulama Örnekleri
Web Uygulamaları
- Oturum yönetimi: Hash tabloları
- Sayfa geçmişi: Yığın yapısı
- İstek kuyruğu: Kuyruk yapısı
Veritabanı Sistemleri
- İndeksleme: B-Ağaçları
- Sorgu optimizasyonu: Graf yapıları
- Önbellek: LRU Cache (Hash + Bağlı Liste)