Tanıtım:
Bu çalışma, bilgisayar mühendisliği eğitimi veren birçok üniversitede standart ikinci sınıf dersi olarak okutulan Veri Yapılarına Giriş dersi için tasarlanmıştır. Günümüzde veri yapılarını konu alan kitaplar her programlama dili için ayrı ayrı yazılmaktadır ve bu da aynı kitabın birden fazla versiyonunun ortaya çıkmasına neden olmaktadır. Oysa bu kitaplar incelendiğinde, veri yapılarının aslında soyut kavramlar olduğu ve değişik programlama dilleri üzerindeki uygulamaları arasında küçük farklar bulunduğu görülür. Bu kitabın aynı konudaki diğer kitaplardan önemli farkı, bütün programların iki programlama dili (C ve Java) üzerinde uygulanışını birlikte vermesi ve dolayısıyla veri yapısı kavramını programlama dilinden bağımsız olarak anlatmasıdır. C ve Java programlama dilleri, bu amaçla bilinçli olarak seçilmiştir.
Kitap 14 haftalık bir dönem içinde işlenecek şekilde planlanmıştır. Öğrencilerin derslerde karşılaştığı önemli bir güçlük olan çözümlü alıştırma eksikliği sorununu ortadan kaldırmak için de 50’si çözümlü olmak üzere 150’nin üzerinde alıştırmaya yer vermektedir. Çözümlü alıştırmalar, kitaptaki diğer tüm kodlar gibi her iki dilde de mevcuttur.
C && Java İle Veri Yapılarına Giriş kitabı Türkiye Bilimler Akademisi (TÜBA) tarafından 2013 yılında kayda değer eser (mansiyon) ödülüne layık görülmüştür.
İçindekiler
- 1 Algoritma Analizi ( Sunum )
- 1.1 Büyük-O Gösterimi 1
- 1.2 Yinelemesiz Programların Analizi 5
- 1.3 özyinelemeli Programların Analizi 7
- 1.4 Temel Teorem 10
- 1.5 Kısa Kısa 12
- 1.6 Çözümlü Alıştırmalar 13
- 1.7 Alıştırmalar 15
- 2 Bağlı Liste ( Sunum )
- 2.1 Bağlı Liste Tanımı 21
- 2.2 Temel Bağlı Liste İşlemleri 23
- 2.3 İki Listeyi Birleştirme 32
- 2.4 Çift Bağlı Liste Tanımı 33
- 2.5 Temel Çift Bağlı Liste İşlemleri 36
- 2.6 Dairesel Bağlı Liste 44
- 2.7 Uygulama: Polinom Aritmetiği 48
- 2.8 Çözümlü Alıştırmalar 57
- 2.9 Alıştırmalar 62
- 3 Çıkın ( Sunum )
- 3.1 Sabit Dizi ile Çıkın Tanımı 65
- 3.2 Bağlı Liste ile Çıkın Tanımı 69
- 3.3 Uygulama: İfadeleri Hesaplama 72
- 3.4 Çözümlü Alıştırmalar 80
- 3.5 Alıştırmalar 83
- 4 Kuyruk ( Sunum )
- 4.1 Sabit Dizi ile Kuyruk Tanımı 85
- 4.2 Bağlı Liste ile Kuyruk Tanımı 89
- 4.3 Uygulama: Hedef Tahtası 92
- 4.4 Çözümlü Alıştırmalar 95
- 4.5 Alıştırmalar 99
- 5 Ağaç ( Sunum )
- 5.1 İkili Arama Ağacı Tanımı 102
- 5.2 Temel İkili Arama Ağacı İşlemleri 106
- 5.3 Gezintiler 114
- 5.4 Ağacı Yinelemesiz Gezme 116
- 5.5 AVL Ağacı 118
- 5.6 B+ Ağacı 131
- 5.7 Uygulama: Ağaç Dizini 139
- 5.8 Kısa Kısa 144
- 5.9 Çözümlü Alıştırmalar 144
- 5.10 Alıştırmalar 149
- 6 Karma ( Sunum )
- 6.1 Karma Tablosu 151
- 6.2 Bağlı Liste ile Karma Tablosu Tanımı 154
- 6.3 Açık Adresleme 157
- 6.4 Tekrar Karma 163
- 6.5 Uygulama: Hedef Tahtası 164
- 6.6 Uygulama: Karma Dizini 167
- 6.7 Kısa Kısa 169
- 6.8 Çözümlü Alıştırmalar 169
- 6.9 Alıştırmalar 173
- 7 Yığın ( Sunum )
- 7.1 Yığın Tanımı 177
- 7.2 Temel Yığın İşlemleri 179
- 7.3 d-li Yığın 187
- 7.4 Uygulama: Hedef Tahtası 196
- 7.5 Kısa Kısa 198
- 7.6 Çözümlü Alıştırmalar 198
- 7.7 Alıştırmalar 200
- 8 Ayrık Küme ( Sunum )
- 8.1 Ayrık Küme Tanımı 203
- 8.2 Temel Ayrık Küme İşlemleri 206
- 8.3 Uygulama: Şifre Çözme 209
- 8.4 Çözümlü Alıştırmalar 213
- 8.5 Alıştırmalar 217
- 9 Çizge ( Sunum )
- 9.1 Çizge Tanımı 221
- 9.2 Kenar Ekleme 225
- 9.3 Uygulama: Çizgede Bağlı Parçalar 226
- 9.4 Uygulama: En Kısa Yol Problemi 235
- 9.5 Uygulama: En Küçük Kapsayan Ağaç 244
- 9.6 Kısa Kısa 253
- 9.7 Çözümlü Alıştırmalar 253
- 9.8 Alıştırmalar 258
- 10 Sıralama Algoritmaları ( Sunum )
- 10.1 Eklemeli Sıralama 262
- 10.2 Seçmeli Sıralama 263
- 10.3 Kabarcık Sıralama 265
- 10.4 Shell Sıralama 266
- 10.5 Yığın Sıralama 269
- 10.6 Birleştirmeli Sıralama 272
- 10.7 Hızlı Sıralama 275
- 10.8 Saymalı Sıralama 278
- 10.9 Radix Sıralama 280
- 10.10 Kısa Kısa 282
- 10.11 Çözümlü Alıştırmalar 282
- 10.12 Alıştırmalar 286