Bu kitap, program geliştiren, matematik ve mühendislik problemlerini bilgisayar ortamında çö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. Program ve yazılım tasarımında, ciddi bir bakış açısı yakalamak isteyenlere önerilir.
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 incelmekte 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.
Konu Başlıkları
| Bilgisayar Yazılım Dünyası |
| Program – Yazılım Geliştirme Süreci |
| Algoritmik Yaklaşımda C Dili Esnekliği ve Özellikleri |
| Veri Yapıları |
| Veri Modelleri |
| Algoritmalar ve Tasarım Yaklaşımları |
| Program Çalışma Hızı ve Bellek Gereksinimi |
| Sıralama Algoritmaları |
| Arama Algoritmaları |
| Bağlantılı Listeler ve Uygulamaları |
| Yığın ve Kuyruk Yapısı |
| Ağaç Veri Modeli |
| Ağaç Uygulamaları |
| Graf Veri Modeli |
| Graf Algoritmaları |
| Durum Makinası ve Gramer Çözümleme |
| Veri Sıkıştırma Yöntemleri |
| Yazılım Geliştirme Süreci |