Bu dersin sonunda öğrenciler; 1) Dinamik bellek yönetimi ve bağlı liste kavramlarını öğrenir 2) Temel veri yapılarını öğrenir 3) Veri yapılarını gerçekleştirmeyi öğrenir 4) Veri soyutlama ve nesen yönelimli tasarım kavramlarını öğrenir 5) Algoritma analizi yapabilme yeteneği kazanır 6) Özyinelemeyi anlar 7) Veri yapılarıyla problem çözme becerisi kazanır 8) Disiplinlerarası projelerde çalışma becerisi kazanır.
DERSİN VERİLİŞ BİÇİMİ
Yüz Yüze
DERSİN ÖNKOŞULLARI
Var( BİL122)
ÖNERİLEN DERSLER
Yok
DERS TANIMI
Temel veri tiplerine ve özelliklerine giriş. Diziler, doğrusal listeler, tek ve çok bağlı listeler, bellek atama ve düzenleme, yığıt ve özyineli yapı, kuyruk yapıları, ağaç yapıları ve tarama yöntemleri, sıralama ve arama algoritmaları, zaman ölçümleri ve çözümlemeleri ve bu tekniklerin uygulamada kullanımı.
DERS İÇERİĞİ
HAFTA
KONULAR
1. Hafta
Veri yapılarına giriş. Programlama prensipleri.
2. Hafta
Nesne tasarım teknikleri
3. Hafta
Vektör veri yapısı
4. Hafta
Göstericiler ve dinamik bellek yönetimi
5. Hafta
Liste veri yapısı ve iteratörler
6. Hafta
Yığıt veri yapısı
7. Hafta
Yığıt uygulamaları
8. Hafta
ARASINAV HAFTASI
9. Hafta
Kuyruk / Öncelikli kuyruk veri yapıları ve uygulamaları
10. Hafta
Bağlı liste veri yapısı
11. Hafta
İkili ağaç veri yapısı
12. Hafta
İkili arama ağacı veri yapısı
13. Hafta
İleri veri yapıları - I (Karma fonksiyonları)
14. Hafta
İleri veri yapıları - II (2-3-4 ağaç yapısı, kırmızı-siyah ağaç yapısı)
ZORUNLU YA DA ÖNERİLEN KAYNAKLAR
1. Data Structures with C++ using STL, 2nd Edition, W.Ford & W.Topp, Prentice-Hall, 2002. 2. Data Structures and Algorithm Analysis in C++, 3rd Edition, M.A. Weiss, Addison Wesly Inc., 2006. 3. Data Structures & Program Design in C, 2nd Edition, Kruse, Tondo, Leung, Prentice-Hall, 1997.