PAPATYAYAYINCILIKEĞİTİM

   - akademik, bilimsel ve üniversite ders kitapları, bizim asıl işimiz -

 Ana Sayfa

Hakkımızda


e-Kitap Projesi


Kitap Listesi

Hazırlanan Kitaplar

Satış/Pazarlama


Çalışmak


İletişim/Bize Ulaşın


Periyodik Dergi

Post-Edu Enstitüsü

Kitap Fuarları

Kurumsal Hizmetler

Türkiye'nin İnternet Kitapçısı'nda tüm akademik kitaplar

www.tdk.com.tr

Yayınevimiz

www.ebandrol.net

üyesidir.

Fiyat Listesi (PDF)

Op. Dr. Kağan KOCATEPE

- Hamilelik Kitapları  -

Op. Dr. Kağan KOCATEPE

Kitapların Tüm Listesi

Açıklamalı Kitap Listesi

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

 

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 Dağıtım -

İstanbul-Cağaloğlu

Tel: (212) 527 52 96

Faks: (212) 527 52 97

 

Veri  Yapıları ve Algoritmalar 

 

Program Tasarımı ve Yazılım Mühendisliğinde

Dr. Rifat ÇÖLKESEN

6. Basım; kitabımız 51 üniversitede ders kitabı seçilmiştir.

 

Bu kitap, 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.

 

Kitap, aynı zamanda, üniversitelerin bilişimle ilgili bölümlerinde okutulan Veri Yapıları ve Algoritmalar dersleri için bir ders kitabı özelliğindedir.

 

Veri Yapıları ve Algoritmalar, program tasarımında çoğu zaman eksikliği hissedilen önemli bir konu; yalnız başına bir programlama dili bilmek, program geliştirmeye yetmemektedir.  Bu kitap, C programlama diline dayanılarak çeşitli veri yapıları ve modellerini ele almakta, onlara ait programın algoritmik ifadesini incelemekte ve örneklerle açıklamaktadır; bütün bunlara ek olarak, program tasarımında yapılması gereken aşamalar sistem analizi ve tasarımı konularına uygun olarak adım adım açıklanmış ve Network yazılımı ve Veri modeli de açıklanmıştır.

 

Program tasarımında en önemli konu, ele alınan uygulamaya en uygun veri modelinin belirlenmesi, veri yapısının tanımlanması ve programın algoritmik olarak ifade edilmesidir.  Veri yapısı, verinin veya bilginin bellekte tutulma şeklini ve düzenini gösterir. Veri modeliyse, verilerin birbirleriyle ilişkisel ve sırasal durumunu gösterir. Bilgisayar ortamında uygulanacak tüm matematik ve mühendislik problemleri bir veri modeline yaklaştırılarak veya yeni veri modelleri tanımlanması yapılarak çözülebilmektedir. Uygun bir veri modeliyle çözüme gidilemeyen problemler, çoğu zaman ya çözümsüz kalmakta veya bellek yetmiyor, bilgisayarın hızı yetmiyor gibi sebeplerle yarım bırakılmaktadır. Uygulamada,  her problem, doğası gereği en uygun bir veri modeline sahiptir.

 


Türkiye'nin İnternet kitapçısı ---> www.tdk.com.tr    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 Yazılım 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)

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. ...

2.12. Proje Çalışması

2.5. Özet

2.6. 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/Yazılım Tasarımı

4.2. Algoritma Tasarımı

       Algoritmik, “Heuristic” Yaklaşımlar

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 Kavramlar ve Bağlantılı Listeler

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ı Liste Uygulamaları

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

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

8.3. Özel Amaçlı Bağlantılı Listeler

8.4. Proje Çalışmaları

8.5. Özet

8.6. Sorular

 

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

9.1. Yığın Tasarımı

9.2. Kuyruk Tasarımı

9.3. .....

9.4. Proje Çalışmaları

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. ...

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 Ağacı ve Uygulaması

10.8.1. Huffman Kodlama Ağacı

10.8.2. Shannon-fano Kodlama Ağacı

10.9. Proje Çalışması

10.10. Özet

10.11. 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.   Graflar ve Temelleri

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.   Program/Yazılım Geliştirme Süreci

Yazılım Projesi Analizi ve Tasarımı

                                                                                     .

Kaynakça

 

Dizin

 

Teknik Bilgiler:

424 sayfa, 18,5x24 cm2, 80 gr 1. hamur kağıt.

 

Şimdi Satın Al


Yayınevimizin konuyla ilgili eserleri:

C# Programlama Dili ve Yazıım Tasarımı Ahmet KAYMAZ

C++ ve Nesneye Yönelik  C Programlama   Dr.Erhan SARIDOĞAN

C# Programlama Dili ve Yazıım Tasarımı Ahmet KAYMAZ

Programlama Sanatı Algoritmalar (C Uyarlaması)  Dr.Cengiz UĞURKAYA (Editör)

C Programlama Dili - İşte C  Dr.Rifat ÇÖLKESEN

Uygulamalı C Programlama Dili   Bora TUNCER

Diskrete Matematik Ortak Yazarlı

Veri Madenciliği Dr. Gökhan SİLAHTAROĞLU

Veri Madenciliği Yöntemleri Dr. Yalçın ÖZKAN

Network TCP/IP ve UNUX El Kitabı Dr. Rifat ÇÖLKESEN

Network/Veri Haberleşmesi Uygulamaları Yasin KAPLAN

Veri Haberleşmesi/Network Temelleri Yasin KAPLAN

Veri Haberleşmesi/Network Kavramları Yasin KAPLAN

Java ve Yazılım Tasarımı Altuğ Altıntaş

Bilgisayar Mimarisi Ortak Yazarlı

Elektronik Mühendisliğine Giriş Ortak Yazarlı

Endüstri Mühendisliğine Giriş Ortak Yazarlı (Editör: Prof. Dr. Ercan ÖZTEMEL)

Bilgisayar Ağları Dr. Demir ÖNER

Bilgisayar Mühendisliğine Giriş Ortak yazarlı (Editör: Dr. Rifat ÇÖLKESEN)

Veritabanı ve Uygulamaları Yılmaz KAYA ve Ramazan TEKİN

Sistem Analizi ve Tasarımı (Bilgisayar Bilimlerinde)  Prof.Dr. Oya KALIPSIZ ve ark.

Yazılım Mühendisliği   Dr.Erhan SARIDOĞAN

Veri Yapıları ve Algoritmalar  Dr.Rifat ÇÖLKESEN

Veri Yapıları Algoritma Temelleri Dr.Sefer KURNAZ

MATLAB Kılavuzu  Dr.Aslan İNAN

JAVA ve Yazılım Tasarımı  Altuğ B. ALTINTAŞ

Linux Altında Programlama   Ali VARDAR

GTK/GNOME Programlama   Ali VARDAR

Kitaplarımızın tüm listesi için buraya tıklayınız.


Akademik Kitaplar - Bilimsel Kitaplar - Üniversite Kitapları