Kategoriler
Eser Adı Yazar Açıklama İçindekiler Barkod
Arama  
Ana Sayfa Sipariş Takibi Üyelik İletişim
 
 
   
C/C++ ile Veri Yapıları ve Çözümlü Uygulamalar
Eylül 2020 / 3. Baskı / 527 Syf.
Fiyatı: 565.00 TL
 
Sepete Ekle
   

Eser, kod anlatımlarıyla zenginleştirilmiş 3. baskısını yapmıştır.

C ve C++ dilleri, Veri Yapıları için vazgeçilmezlerden olan aktif bellek kullanımı, göstericiler (pointers) ve doğrudan bellek yönetimine destek sağlarlar. Bu nedenle C ve C++ dilleri, veri yapılarını öğrenmek isteyenler için oldukça ideal dillerdir. Bellek yönetimi tam olarak anlaşılmadan Veri Yapılarının anlaşılması mümkün değildir. C/C++ sayesinde bellek yönetiminin temellerine inilerek konunun anlatılması sağlanmıştır.

Kitap içeriği, Veri Yapıları dersinin okutulduğu bütün bölümlerde ders kitabı olarak kullanılmaya uygun olarak düzenlenmiştir. Özellikle Bilgisayar ve Yazılım Mühendislikleri ile Bilgisayar Programcılığı bölümleri için kaynak kitap olarak kullanılabilir. Kendi kendine Veri Yapıları'nı öğrenmek isteyenler, kitap içerisindeki 300'den fazla örnek ve uygulamaları bilgisayarlarında kendi kendilerine deneyerek sonuçlarını kitaptaki sonuçlarla karşılaştırabilirler. Konular ilerledikçe, kitabın ne kadar etkin bir öğrenim yöntemi olduğunu kendileri göreceklerdir.

Bu kitap içeriğinde verilen tüm örnek ve uygulamalar, standart C/C++ kurallarına uygun olup GNU C/C++ derleyicilerinde derlenebilir durumdadır. Bu kitaptaki kodlar, bir GNU derleyicisi olan MinGW derleyicisi kullanılarak derlenmiş ve çıktıları alınmıştır.

Kitapta yer alan kodları seckin.com.tr'den indirebilirsiniz.

"Kötü programcılar yazdıkları kod hakkında endişelenirken, iyi programcılar veri yapıları ve ilişkileri hakkında endişelenirler." - Linus Torvalds -

Konu Başlıkları
Özyineleme ve Algoritma Analizi
Diziler
Yığıt Veri Yapısı (Stack)
Kuyruk Veri Yapısı (Queue)
Listeler
Ağaçlar
Sıralama Algoritmaları
Arama Algoritmaları
Graf ve Graf Uygulamaları
Kapsama Ağaçları
Çırpılama (Hashing)
Bellek Yönetimi (Göstericiler) ve B–Ağaçları
Barkod: 9789750261176
Yayın Tarihi: Eylül 2020
Baskı Sayısı:  3
Ebat: 16x24
Sayfa Sayısı: 527
Yayınevi: Seçkin Yayıncılık
Kapak Türü: Karton Kapaklı
Dili: Türkçe
Ekler: -

 

İÇİNDEKİLER
İçindekiler
Önsöz  5
Semboller  7
GİRİŞ
G1. C++ ÖN BİLGİ  25
G1.1. Derleyici  25
G1.2. C++ Kod Yapısı  26
G1.3. Türler Arası Dönüşüm  27
G1.4. C++ Sınıf Yapısı  27
G2. NESNE MANTIĞI  28
G2.1. Nesne Yönelimli Programlama Prensipleri  28
G2.2. Sınıfın Görüntülenecek Formatta İfade Edilmesi  30
G2.3. Ara Yüzler  31
G2.4. Şablonlar  32
G2.5. Sınıf Şablonları  33
G2.6. Hata Yakalama  33
G2.6.1. Kodlamada Karşılaşabilecek Hatalar  34
G3. ALGORİTMA KARMAŞIKLIĞI  36
Özet  37
Uygulamalar  37
Çözümler  38
BÖLÜM 1
1. VERİ YAPILARI  45
1.1. Giriş  45
1.2. Veri Yapısı (Data Structure)  46
1.3. Veri ve Bilgi Kavramı  46
1.3.1. On Altı Tabanlı Sayı Sistemi (Hexadecimal)  49
1.4. VERİ TİPLERİ  52
1.4.1. İlkel Veri Tipleri  52
1.4.2. Sayısal (Numeric) Tipler  53
1.4.3. Floating Point (Kayan Noktalı)  54
1.4.4. Decimal (Onlu)  55
1.4.5. Boolean (Mantıksal)  55
1.4.6. Karakter (Character) Tipi  55
1.4.7. Karakter Katarı (Character String)  55
1.4.8. Kullanıcı Tanımlı Sıralı Tipler  56
1.4.9. Türetilmiş Veri Tipleri  57
1.4.10. Pointer (Gösterge) Tipi  62
1.5. Tip Kontrolü  64
1.6. Tip Dönüşümleri  65
1.7. Veri Yapısı Çalışmaları  69
Özet  71
Uygulamalar  71
Çözümler  72
BÖLÜM 2
2. ÖZYİNELEME VE ALGORİTMA ANALİZİ  79
2.1. Faktöriyel Fonksiyonu ve Özyineleme  79
2.2. Doğal Sayıların Çarpımı ve Özyineleme Yaklaşımı  81
2.3. Fibonacci Serisi ve Özyineleme  82
2.4. İkili Arama Algoritması ve Özyineleme  84
2.5. Hanoi Kuleleri  86
2.6. Özyinelemenin Değerlendirilmesi  90
2.7. Algoritma Analizi  90
2.8. Algoritma Karmaşıklığı Hesaplama Örnekleri  95
Özet  99
Uygulamalar  100
Çözümler  101
BÖLÜM 3
3. DİZİ VERİ YAPISI  105
3.1. Tek Boyutlu Diziler  105
3.1.1. Tek Boyutlu Diziler ve Erişim Fonksiyonu  107
3.1.2. Tek Boyutlu Dizi Üzerine Uygulamalar  109
3.2. İki Boyutlu Diziler  114
3.2.1. Dizilerin Bellekle Eşleştirilmesi Yöntemleri  115
3.2.2. İki Boyutlu Dizinin Bellek Erişim Adresinin Bulunması  116
3.3. Üç Boyutlu Diziler  118
3.3.1. Üç Boyutlu Dizinin Bellekte Yerleşimi  119
3.4. Parametre Aktarım Yöntemleri  121
3.4.1. Değer ile Çağırma (Call by Value)  122
3.4.2. Sonuç ile Aktarım (Call by Result) ve Değer ve Sonuç ile Aktarım (Call by Value Result)  123
3.4.3.Referans ile Aktarım  123
3.4.4. Aktarım Yöntemlerinin Karşılaştırılması  124
3.5. Dizilerin Parametre Olarak Aktarılması  124
Özet  125
Uygulamalar  125
Çözümler  126
BÖLÜM 4
4. YIĞIT  131
4.1. Yığıt Üzerinde Temel İşlemler  133
4.2. Yığıt ile Problem Çözümü  134
4.3. Yığıt ve Temel İşlemlerinin Programlanması  137
4.3.1. Pop Fonksiyonu  139
4.3.2. Push Fonksiyonu  140
4.4. Matematiksel İfadelerin İnfix, Postfix ve Prefix Gösterimi  141
4.4.1. INFIX, POSTFIX ve PREFIX Gösterimleri ve Yığıt Veri Yapısı  141
4.4.2. Postfix İfadenin Değerlendirilmesi  145
4.4.3. Postfix İşlemlerinin C++ ile Gerçekleştirimi  147
4.5. Sayı Taban Dönüştürme İşleminin Yığıt ile Gerçekleştirimi  151
4.6. Yığıtın Kullanım Yerleri  153
Özet  159
Uygulamalar  159
Çözümler  160
BÖLÜM 5
5. KUYRUK VERİ YAPISI  169
5.1. Kuyruk Yapısına Eleman Ekleme  169
5.2. Kuyruk Yapısından Eleman Çıkarma  170
5.3. Ekleme ve Çıkarma İşleminin Yürütülmesi  170
5.4. Dairesel Kuyruk  175
5.4.1. Dairesel Kuyruk Temel İşlemleri  175
5.4.2. Dairesel Kuyruk Yapısının C/C++ İşletimi  181
5.4.3. Dairesel Kuyruğa Eleman Ekleme İşleminin İşletilmesi  182
5.5. Öncelikli Kuyruk  183
5.5.1. Öncelikli Kuyruk İşletimi  184
5.5.2. Öncelikli Kuyruk C++ ile İşletimi  185
5.6. Kuyruk Yapısı ve Sıralama Uygulaması: Radix Sort  186
Özet  189
Uygulamalar  190
Çözümler  190
Ekler  193
Ek1.a: Dizi üzerinde kuyruk  193
Ek1.b. DiziKuyrukTest  194
Ek2.a. Dairesel kuyruk  195
Ek2.b. Dairesel kuyruk test  196
Ek3. RadixSort  197
BÖLÜM 6
6. BAĞLI LİSTE  201
6.1. Tek Yönlü Bağlı Liste  201
6.2. Bağlı Listeye Eleman Ekleme  202
6.3. Bağlı Listeden Eleman Çıkarma  204
6.4. Bağlı Liste ile Yığıt Gerçekleştirimi  206
6.5. Bağlı Liste ile Kuyruk Gerçekleştirimi  207
6.6. Bağıl Listenin Bellek Yerleşimi  208
6.7. Bağlı Liste ile Öncelikli Kuyruk İşletimi  214
6.8. Bağıl Listenin Dizi Üzerinde Gerçekleştirilmesi  215
6.9. C ve C++ Dillerinde Bağlı Liste Uygulamaları  219
6.9.1. Dinamik Değişkenlerle Bağlı Liste Uygulamaları  223
6.9.2. Liste Gezici Sınıfı (Iterator)  225
Özet  228
Uygulamalar  229
Çözümler  230
Ekler  232
Ek1. Satandart Kütüphanede Bazı Bağlı Liste Fonksiyonları  232
Ek2. Düğüm Sınıfı  233
Ek3. Liste Gezici  233
Ek4. Liste  234
BÖLÜM 7
7. BAĞLI LİSTELER 2  239
7.1. Dairesel Tek Yönlü Bağlı Liste  239
7.1.1. Dairesel Tek Yönlü Bağlı Liste ile Yığıt  240
7.1.2. Dairesel Tek Yönlü Bağlı Liste ile Kuyruk  241
7.1.3. Tek Yönlü Dairesel Bağlı Listede Temel İşlemler  242
7.1.4. Bir Dairesel Liste Uygulaması  242
7.2. İki Yönlü Bağlı Liste  244
7.2.1. İki Yönlü Bağlı Listelerde Temel İşlemler  246
7.2.2. İki Yönlü Bağlı Listelerde Herhangi Bir Yerden Eleman Silme  246
7.2.3. İki Yönlü Bağlı Listelerde Herhangi Bir Yere Eleman Ekleme  247
7.2.4. İki Yönlü Bağlı Listelerde Uygulamalar  248
7.3. İki Yönlü Dairesel Bağlı Liste  251
7.3.1. İki Yönlü Dairesel Bağlı Listeye Eleman Ekleme  251
7.3.2. İki Yönlü Dairesel Bağlı Listeden Eleman Silme  252
7.3.3. İki Yönlü Dairesel Bağlı Listede Dolaşımlar  252
Özet  253
Uygulamalar  253
Çözümler  254
Ekler  256
Ek1. Liste Gezici  256
Ek2. İki Yönlü Bağlı Liste Üzerinde Gezinti  257
Ek3. Test  259
BÖLÜM 8
8. AĞAÇLAR  263
8.1. Ağaç Veri Yapısı Temel kavramları  264
8.2. İkili Ağaçlar (Binary Trees)  265
8.2.1. İfade Ağaçları  266
8.3. İkili Ağaçlarda Dolaşım  268
8.3.1. Preorder Traversal  268
8.3.2. Postorder Traversal  271
8.3.3. Inorder Traversal  273
8.3.4. İkili Ağaçlarda Dolaşımın Rekürsif İşletimi  277
8.4. İkili Arama Ağaçları  277
8.4.1. İkili Arama Ağacı Kurma Algoritması  279
8.4.2. İkili Arama Ağacı Arama Algoritması  281
8.5. Ağaç Veri Yapısı Temel İşlemleri ve C++ Dili İşletimi  282
8.6. Ağaç Veri Yapısının Dizi Gösterimi  289
8.6.1. Ağaç Veri Yapısının Dizi Yardımıyla C++ Dilinde Gerçekleştirimi  290
Özet  296
Uygulamalar  297
Çözümler  299
BÖLÜM 9
9. İKİLİ AĞAÇ UYGULAMALARI  305
9.1. Heap Sort  305
9.1.1. Heap Yapılanması  306
9.1.2. Heap İkili Ağacını Kullanarak Sıralama Yapma: HeapSort  309
9.2. Veri Sıkıştırma  313
9.3. Optimal İkili Ağaçlar  315
9.3.1. Huffman Optimal İkili Ağaç Algoritması  317
9.3.2. Sıralı Listelerin Kaynaştırılması  321
9.3.3. Huffman Ağacının C++ ile Gerçekleştirimi  323
9.3.4. ShannonFano Kodlaması  328
9.3.5. LempelZiv Algoritması  330
9.3.6. Kod Çözümü  333
Özet  334
Uygulamalar  335
Çözümler  336
BÖLÜM 10
10. SIRALAMA ALGORİTMALARI  343
10.1. Kabarcık Sıralama (Bubble Sort) Algoritması  343
10.1.1. Algoritmanın Analizi  346
10.2. Seçme Sıralama (Selection Sort) Algoritması  346
10.2.1. Algoritmanın Analizi  349
10.3. Araya Ekleme Sıralama (Insertion Sort) Algoritması  350
10.3.1 Algoritmanın Analizi  351
10.4. Kabuk Sıralama (Shell Sort)  353
10.5. Hızlı Sıralama Algoritması (Quick Sort)  354
10.5.1. Hızlı Sıralama Algoritmasının Analizi  357
10.6. Birleştirmeli Sıralama (Merge–Sort)  357
10.6.1. Birleştirmeli (Merge–sort) Sıralama Algoritmasının Analizi  361
10.7. Alfabetik Bilgilerin Sıralanması  361
10.7.1. Birden Fazla Alana Sahip Bilgilerin Sıralanması  362
10.8. Ağaç Sıralama Algoritması (Tree Sorting)  364
10.9. Karar Ağacı Sıralama (Decision Tree)  366
Özet  367
Uygulamalar  368
Çözümler  368
BÖLÜM 11
11. ARAMA ALGORİTMALARI  373
11.1 Sıralı Arama  373
11.2. İkili Arama algoritması  374
11.3. Ara Değerle Arama (Interpolation Search)  375
11.4. Ağaç Arama (Tree Sorting)  378
11.5. İkili Arama Ağacına Eleman Ekleme  380
11.6. İkili Arama Ağacından Eleman Silme  383
11.7. AVL Ağaçları  388
11.7.1. Dengeleme Algoritmasının Genel Tanımı  389
11.7.2. AVL Ağacının C++ Dili İle Gerçekleştirimi  392
11.8. Çok Boyutlu Arama Ağaçları  394
11.8.1. Splay Ağaçları  394
11.8.2. Kd – Ağaçları  397
11.8.3. Kırmızı–Siyah Ağaçları (Red–Black Trees)  401
Özet  406
Uygulamalar  407
Çözümler  408
BÖLÜM 12
12. GRAF VE GRAF UYGULAMALARI  413
12.1. Graflar  413
12.2. Grafların Gösterimi  415
12.2.1. Komşuluk (Adjacency) Matrisi  415
12.2.2. Komşuluk (Adjacency) Listesi  419
12.3. Yollar ve Halkalar (Paths And Circuits)  422
12.3.1. Euler Halkası ve Yolu  422
12.3.2.Euler Halkasının C++ ile Gerçekleştirimi  423
12.4. Grafta En Kısa Yol  424
12.4.1. Dijkstra Algoritması  424
12.5. Grafın Farklı Bir Uygulaması: Öncelik Grafları  427
Özet  429
Uygulamalar  430
Çözümler  431
BÖLÜM 13
13. KAPSAMA AĞAÇLARI  435
13.1. Geniş Öncelikli Arama Algoritması (BFS)  435
13.1.1. BFS’nin C++ ile Gerçekleştirimi  438
13.2. Derin Öncelikli Arama Algoritması  441
13.2.1. DFS’nin C++ ile Gerçekleştirimi  445
13.3. BFS ve DFS’nin Zaman Karmaşıklığı Karşılaştırması  447
13.4. Minimum Kapsama Ağaçları  447
13.4.1. Prim Algoritması  448
13.4.1.1. Prim Algoritmasının C++ ile Gerçekleştirimi  450
13.4.2. Kruskal Algoritması  451
13.4.2.1. Kruskal Algoritmasının C++ ile Gerçekleştirimi  454
Özet  455
Uygulamalar  456
Çözümler  457
BÖLÜM 14
14. HASHING (ÇIRPILAMA)  465
14.1. Açık Çırpılama (Ayrık Zincirleme)  467
14.2. Kapalı Çırpılama (Açık Adresleme)  469
14.2.1. Doğrusal Sınama Yöntemi  469
14.3. İkili Çırpılama (Double Hashing)  471
14.4. Açık Çırpılamanın C++ ile Gerçekleştirimi  472
14.4. İkili Çırpılamanın C++ ile Gerçekleştirimi  476
Özet  478
Uygulamalar  479
Çözümler  480
BÖLÜM 15
15. BELLEK YÖNETİMİ VE B–AĞAÇLARI  483
15.1. Bellek Yönetimi  483
15.1.1. Statik Bellek Bölgesi  483
15.1.2. Çalışma Anı Yığını (Run Time Stack)  483
15.1.3. Heap Bellek Bölgesi  486
15.1.4. Bellekte, Statik ve Dinamik Alan  488
15.2. B–Ağaçları (B–Trees)  488
15.2.1. B–ağaçlarından Eleman Silinmesi  490
15.2.2. B–ağaçlarının Karmaşıklık Analizi  491
Özet  491
Uygulamalar  492
Çözümler  493
Ekler  495
BÖLÜM 16
16. MINGW DERLEYİCİSİNİN KURULUMU VE ÖRNEK ÇALIŞMALAR  501
16.1. MinGW  501
16.1.1. MinGW Debug İşlemi  501
16.2. MinGW Kurulumu  504
16.3. İlk C++ Programının Derlenmesi  509
16.4. Gelişmiş C++ Programlarının Derlenmesi  510
16.5. Make Dosyası  516
Özet  518
Kaynaklar  519
Kavramlar Dizini  521
 


 
Kitap
 
 
Ana Sayfa | Hakkımızda | Gizlilik Sözleşmesi | Üye Sayfası | Yardım | İletişim
Akademik ve Mesleki Yayınlar

Seçkin Yayıncılık San. Tic. A.Ş.
Copyright © 1996 - 2024