PAPATYA YAYINCILIK EĞİTİM

   akademik, bilimsel ve üniversite ders kitapları, bizim, işimiz...


üniversite yayıncılığı farkımız, kitaplarımızda;               academic and technical book publisher


 Ana Sayfa

 

Hakkımızda


e-Kitap Projesi


Kitapların Listesi

Basılacak Kitaplar

Satış/Pazarlama


Bizimle Çalışmak


İletişim/Bize Ulaşın


Periyodik Dergi

Post-Edu Enstitüsü

Kitap Fuarı Duyuru

Kurumsal Hizmetler

İnternet Kitapçısı

www.tdk.com.tr

fiyat listesi

 Kitapların Tüm Listesi

 e-Kitap Çalışmalarımız

Mühendislik Kitapları

Programlama Kitapları

İşletme Kitapları

Dilbilim Kitapları

fiyat listesi

Türkiye'de "e-Kitap/e-Book" Araştırması ve Uygulaması. Ayrıntılı Bilgi için tıklayınız.

Akademik/periyodik dergi çıkartıyoruz. Ayrıntı için buraya tıklayınız.

Kitap Ana Dağıtım:

İstanbul-Cağaloğlu

Tel: (0212) 527 52 96

Faks: (0212) 527 52 97

cagaloglu@papatya.gen.tr

 

 

 

 

 

 

http://www.tdk.com.tr/images_buyuk/f67/Algoritma-Gelistirme-ve-Veri-Yap_5767_1.jpg

 

 

ş

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Veri  Yapıları ve Algoritmalar

Bilgisayar Mühendisliği ve Yazılım Mühendisliğinde

Toros Rifat ÇÖLKESEN (Ph.D)

 

 

 

 

 

ISBN: 978-975-6797-23-5, 9. basım, 2014

480 sayfa, (18,5x24 cm2), 80 gr 1. hamur kağıt.                      Sert kapak --> şimdi satın al

Güncellenmiş ve yeniden düzenlenmiş basım 9. basım                Karton kapak -->  şimdi satın al


Bu kitabımız 71 üniversitede ders kitabı olarak kullanılmaktadır.


Veri Yapıları ve Algoritmalar konusu; Bilgisayar Mühendisliği kurumsal temellerinin en önemli konularından birisidir; amacı ise program veya yazılım tasarımında sistemin kullanacağı verilerin bellekte en uygun şekilde tutulması ve onları kullanacak en optimum algoritmaların geliştirilmesi üzerinedir. Verilerin bellekte tutulma şekilleri onların işlenmesini de doğrudan etkilemektedir; dolayısıyla hem bilgisayar belleğinin tasarruflu kullanılması hem de geliştiren algoritmaların hızlı çalışması için veri modelleri, veri yapıları ve bazı ünlü algoritmaların bilinmesi gerekir. Öyle ki, çok özel bir problem olmadığı sürece, zaten onunla ilgili evrensel bir algoritma geliştirilmiştir. Tasarımcının bu algoritmaları bilmesi, karşılaştığı benzer problemlere uyarlayabilmesi veya var olan birkaç seçenekten hangisinin en uygun olduğunu seçebilmesi gerekir. İşte bu kitap okuyucuya böylesi birikimi kazandırmak için hazırlanmıştır. Bu konuları açıkça bilmeyen mühendislerin her zaman bir eksiklik hissettikleri aşikârdır.

Kitabımız, üniversitelerimizin bilgisayar mühendisliği, yazılım mühendisliği ve bilişimle ilgili diğer bölümlerinde okutulan “Veri Yapıları ve Algoritmalar” dersleri için ciddi bir ders kitabı olma özelliğindedir. Ayrıca profesyonel yazılım tasarımcıları için de ciddi bir başvuru kaynağıdır. Ancak, böylesi nitelikli ve içeriği zengin bir kitabın ciddi ve evrensel düzeyde eğitim veren üniversiteler için uygun olduğunu da belirtmemiz gerekir.

 

"Veri Yapıları ve Algoritmalar" adlı bu kitabımız program geliştiren, matematik ve mühendislik problemlerini bilgisayar ortamında modelleyerek çözmek isteyen, iş dünyasına yönelik yazılım tasarımları yapan her düzeyden programcı veya yazılımcılar için ciddi bir başvuru kitabıdır.


http://www.tdk.com.tr/images_buyuk/f67/Algoritma-Gelistirme-ve-Veri-Yap_5767_1.jpg


  Veri Yapıları ve Algoritmalar PDF indir                            şimdi satın al


 

ÖNSÖZ


Ülkemizde bilişim alanında kitap yazmak iki açıdan, diğer alanlara göre çok daha zor ve risklidir. Bir yandan, bu bilim dalındaki başdöndürücü gelişmeler kitapları çok kısa sürede eskitmektedir. Diğer yandan, konu hem akademik ve hem de sektörel olduğundan, iki farklı okuyucu kitlesine birlikte hitap etmenin getirdiği zorluk vardır. Öğrenciler bir ders kitabı formatını isterken, sektör mensupları da daha pratik ve referans türü kitaplar görmek istiyorlar.

İşte böyle zor bir ortamda genç bir yayınevi genç bir akademisyenin bilişim alanında yazdığı kitapları peşpeşe çıkardığında, yayın ve eğitim dünyası için sevinmek gerekir. Papatya Yayıncılık ve yazarı Dr. Rifat Çölkesen gerek içerik ve gerek formatıyla kitaba değer verdiklerini göstermektedirler. Bu kitapların üretimindeki kalite ve profesyonellik artık okuyucuların özlediği düzeydedir. Bugün kişisel bilgisayarlarda profesyonel masaüstü yayıncılığının tüm olanakları varken, bilgisayar alanında kitap yazanların bundan yararlanmıyor olması düşünülemezdi.

Günümüzde Bilgisayar Mühendisliği, Matematik-Bilgisayar veya İnformatik adı altında eğitim yapılan tüm bölümlerde Veri Yapıları ve Algoritmalar dersi artık omurga ders olmuştur. Öğrencinin bu derste iyi yetişmesi o bölümün ciddiliği için esas kriter olmuştur. Kitap bu açıdan, içerik zenginliği ve hacmi ile, hem lisans ve hem de lisansüstü düzeyinde okutulabilecek düzeydedir.

Diğer olumlu gördüğüm bir nokta da Sayın Çölkesen'in yazdığı kitapların arkasında oluşudur. Bundan önceki kitaplarında olduğu gibi, bilimdeki gelişmelere paralel olarak, uygun aralıklarla kitaptaki konuları güncelleyecek ve okuyucuya destek olacaktır; bunun için gerekli bilgi ve gayreti vardır.

Sayın Çölkesen'in Veri Yapıları ve Algoritmalar adlı yeni kitabına öğrenci ve öğretim üyelerim adına hoşgeldin diyor, ülkemiz eğitim dünyasında yararlı olmasını diliyorum. - Prof.Dr. Bekir KARAOĞLU


 

İÇİNDEKİLER

 

Önsöz

Kitap Hakkında

Bölüm 1.   Bilgisayar Bilimleri Dünyası

Yazılım ve Program

Program Kodu

Donanım ve Bellek

İşletim Sistemi

Veri Yapısı  ve Veri Modeli

Algoritma

Program Çalışma Hızı ve Büyük O

Programın Bellek Gereksinimi

İşlemci, Makina Kodu ve Assembly Dili

Programlama Dilleri

Görsel Programlama Dilleri

Nesneye Dayalı Programlama Dilleri

Editör, Derleyici ve Profiler

Veritabanı ve SQL

ORACLE, SYBASE, MYSQL

Böl ve Yönet Yaklaşımı

Kullanıcı/Sunucu Mimarisi

Network Yazılımı/Programlaması

Internet ve TCP/IP Hizmet Türleri

Kıyaslama  (Benchmarking)

Yazılım Modelleme Dilleri

Sorular

 

Bölüm 2.   Algoritmik Yaklaşımda C Dili Esnekliği ve Özellikleri  

2.1. C Dilinde Bilinmesi Gerekenler

Bir C programı

2.2. Bellek Düzeni ve Diziler

2.3. Yapısal Veri Tanımlaması

2.4. İşaretçiler

2.5. İşaretçi ve Diziler Arasındaki İlişki

2.6. Dinamik Bellek Kullanımı

2.7. Fonksiyon Çağırma Yöntemleri

2.8. Fonksiyona Veri/Parametre Aktarımı

2.9. Rekürsif Fonksiyonların Çalışma Şekli

2.10. Disk ve Saklama Birimlerine Erişim

2.11. Proje Çalışması

2.12. Özet

2.13. Sorular

 

Bölüm 3.   Veri Yapıları ve Veri Modelleri

3.1. Veri Yapıları

3.1.1. Temel Veri Yapıları

Karakter,

Tamsayı, Kesirli Sayı

Katar ve Karakter Dizisi

Dizi ve Matrisler

3.1.2. Tanımlamalı Veri Yapıları

Topluluk

Ortaklık

   bit Düzeyinde

3.2. Veri Modelleri

Liste ve Bağlantılı Liste Veri Modeli

Ağaç Veri Modeli

Graf Veri Modeli

Durum Makinası Veri Modeli

Veritabanında İlişkisel Veri Modeli

Ağ (Network) Veri Modeli

3.3. Proje Çalışması

3.4. Özet

3.5. Sorular

 

Bölüm 4. Algoritmik Program Tasarımı ve Akış Şemaları

4.1. Program ve Yazılım Tasarımı

4.2. Algoritma Tasarımı

       Algoritmik, “Heuristic” Yaklaşımlar

       Kaba-kod ve Gerçek Kod

       Akış Şemaları

       Nesneye Dayalı Yaklaşımla Algoritma Tasarımı

       Algoritma ve İlişki Tanımlaması için Çeşitli Yöntemler

       UML Diyagramları

4.3. Akış Şemaları

       4.3.1. Çeşitli Akış Şemaları Örnekleri

       4.3.2. N-S (Nassi-Schnederman) Şemaları

       4.3.3. W-O (Warnier-Orr) Diyagramları

4.4. Proje Çalışmaları

4.5. Özet    

4.6. Sorular

 

Bölüm 5.   Program Çalışma Hızı ve Bellek Gereksinimi

5.1. Temel Kavramlar

5.2. Program Çalışma Hızı ve Karmaşıklık

Başarım Sınaması (Benchmarking)

      Algoritma Analizi

5.2.1. Yürütme Zamanı  (Running Time)

5.2.2. Karmaşıklık (Complexity)

5.3. programın Bellek Gereksinimi

5.4. Asimtotik Notasyonlar

5.5. Proje Çalışmaları

5.6. Özet

5.7. Sorular

                             

Bölüm 6.   Sıralama Algoritmaları

6.1. Temel Kavramlar

6.2. Araya Sokma Sıralaması (Insertion Sort)

6.3. Seçmeli Sıralama (Selection Sort)

6.4. Kabarcık Sıralaması (Bubble Sort)

6.5. Birleşmeli Sıralama (Merge Sort)

6.6. Kümeleme Sıralaması (Heap Sort)

6.7. Hızlı Sıralama (Quick Sort)

6.8. Algoritmaların Karşılaştırılması

6.9. Proje Çalışmaları

6.10. Özet

6.11. Sorular

 

Bölüm 7.   Arama Algoritmaları

7.1. Arama Üzerine Temel Kavramlar

      Dahili Arama, Harici Arama, Anahtar Sözcük

7.2. Ardışıl & Doğrusal Arama (Sequential Search)

      Ardışıl Aramada Ortalama Yürütme Zamanını Azaltmak

7.2. İkili Arama  (Binary Search)

      Sıralı Dizi Üzerinde İkili Arama

      İkili Ağaç Üzerinde İkili Arama

7.3. Çırpı Algoritması   (Hash Algorithm)

      Çatışma Çözümlemesi: Açık Adresleme, Bağlantılama 

7.4. Proje Çalışmaları

7.5. Özet

7.6. Sorular

 

Bölüm 8.  Bağlantılı Listeler ve Uygulamaları

8.1. Temel Liste Kavramları

Tek Yönlü Bağlantılı Liste

Çift Yönlü Bağlantılı Liste

      Çevrimsel Bağlantılı Liste

      Karma Bağlantılı Liste

8.2. Bağlantılı Listelerin Bellekte Tutulma Biçimleri

8.3. Ayrık Alanlarda Bağlantılı Liste Uygulaması

8.4. Tek Yönlü Bağlantılı Liste Uygulaması

8.5. Dizi Üzerinde Bağlantılı Liste Uygulaması

8.6. İki-Yönlü Bağlantılı Liste Uygulaması

8.7. Proje Çalışmaları

8.8. Özet

8.9. Sorular

 

Bölüm 9.  Yığın ve Kuyruk Yapısı

9.1. Yığın Davranışı ve Tasarımı

9.2. Kuyruk Davranışı ve Tasarımı

9.3. Öncelikli Kuyruk Çözümleri

9.4. Proje Çalışması

9.5. Özet

9.6. Sorular

 

Bölüm 10.  Ağaç Veri Modeli

10.1. Ağaçlar Üzerine Temel Kavramlar

10.2. Ağaç Türleri ve Ağaç Üzerindeki İşlemler

10.3. Ağaçların Bellek Üzerinde Tutulması

10.3.1. Düğüm Bağlantısıyla Ağaç Kurulması ve Veri Yapısı

10.3.2. İndis-Bağıntısıyla Ağaç Kurulması

      10.4.İkili Ağaçları

            10.4.1. İkili Ağaç Üzerinde Dolaşma/Düğümlere Erişim

            10.4.2. Bağıntı Ağaçları

            10.4.3. Sıralı İkili Ağaçlar İçin Algoritmalar

      Ağaca Düğüm Ekleme

      Düğümleri Listeleme/Dolaşma

      Düğüm Silme Algoritması

      Düğüm Sayısını Bulma

10.5. Dengeli Ağaç ve AVL Ağaç Yapısı

10.6. Kümeleme Ağacı

10.7. Trie Ağacı ve Sözlük Ağacı

10.8. Kodlama ve Kodlama Ağaçları

        10.8.1. Huffman Kodlama Ağacı

        10.8.2. Shannon-Fano Kodlama Ağacı

10.9. Çeşitli Ağaç Şekilleri

10.10. Proje Çalışmaları

10.11. Özet

10.12. Sorular

 

Bölüm 11.  Ağaç Uygulamaları

11.1. Sıralı İkili Ağaç Uygulaması

11.2. Dizinli Dosya/Kayıt Organizasyonu

11.3. Kodlama/Sıkıştırma Ağacı Uygulaması

11.5. V.42bis Sözlük Tabanlı Sıkıştırma Algoritması

11.5. Proje Çalışması

11.6. Özet

11.7. Sorular

 

Bölüm 12.   Graf Veri Modeli

12.1. Graf Kavramları ve Tanımlar

12.2. Grafların Bellek Üzerinde Tutulma Biçimi

12.2.1. Matris Üzerinde Tutulması

12.2.2. İki-Dizi Üzerinde Tutulması

12.2.3. Bağlantılı Liste ile Tutulması

12.2.4. Dizili-Bağlantılı Liste ile Tutulması

12.3. Graf Üzerinde Dolaşma

      DFS – Önce Derinlik Sınaması

      BFS – Önce Genişlik Sınaması

12.4. Greedy Algoritması/Yaklaşımı

12.5. Graf Renklendirme

12.6. Proje Çalışması

12.7. Özet

12.8. Sorular

 

Bölüm 13.   Graf Algoritmaları

13.1. En Kısa Yol (Shortest Path) Problemi Bulunması

13.1.1. Dijkstra’nın Algoritması

13.1.2. Bellman ve Ford Algoritması

13.1.3. Floyd’un Algoritması

13.2. Yol Ağacı (Spanning Tree) Bulunması Problemi

13.2.1. Kruskal’ın Algoritması

13.2.2. Prim’in Algoritması

13.2.3. Soolins’in Algoritması

13.3. Gezgin Satıcı (Salesman) Problemi

13.4. Proje Çalışması

13.5. Özet

13.6. Sorular

 

Bölüm 14.   Durum Makinası ve Gramer Çözümleme

14.1. Durum Makinası Kavramları

14.2. Sonlu Duurm Makinası

14.3. Turing Makinası

14.4. Gramer Çözümleme

14.5. Proje Çalışması

14.6. Özet

14.7. Sorular

 

Bölüm 15.   Veri Sıkıştırma Yöntemleri

15.1. Verideki Fazlalıklar

15.2. Sıkıştırma Teknikleri

15.3. İstatiksel Sıkıştırma Teknikleri

15.4. Adaptif Sıkıştırma Teknikleri

15.5. Proje Çalışması

15.6. Özet

15.7. Sorular

 

Bölüm 16.   Yazılım Geliştirme Süreci

16.1. Yazılım Mühendisliği ve Yöntembilimleri

        16.1.1. Yazılım Mühendisliği Metodolojileri

16.2. Yazılım Mühendisliği Standartları

16.3. Analiz, Tasarım ve Geliştirme Süreçleri

16.4. Proje Çalışmaları

16.5. Özet

16.6. Sorular

                                                                 .

Kaynakça

 

Dizin

 


Diğer programlama ve mühendislik kitaplarımızı incelemek için buraya tıklayınız.


Akademik Kitaplar, Bilimsel Kitaplar, Teknik Kitaplar, Üniversite Ders Kitapları