Ders 1: Giriş Abdül Halim Zaim İstanbul Ticaret Üniversitesi Veri Yapıları Ders 1: Giriş Abdül Halim Zaim İstanbul Ticaret Üniversitesi
Genel Bilgiler Dersin Öğretim Üyesi: Prof.Dr. Abdül Halim Zaim azaim@ticaret.edu.tr Dahili: 3331 Küçükyalı Kampüsü, C Blok, 301 Web Adresi : http://ww3.ticaret.edu.tr/~azaim Görüşme Saatleri: Çarşamba ve Cuma günleri önceden randevu alınarak görüşülebilir. Gerekli durumlarda email ile irtibat kurulabilir. Ders ile ilgili bilgilendirmeler için Web Sayfasını Düzenli olarak kontrol ediniz.
Ders İçeriği Veri Tipleri Linkli Listeler Yığınlar (rekürsiyon) Genel Bakış ve Temel Kavramlar Soyut Veri Modelleme Diziler Yapılar Linkli Listeler Yığınlar (rekürsiyon) Kuyruklar Ağaçlar
Ders İçeriği İkili Ağaçlar İndeks Metodları (Hash Yöntemi) İkili Arama Ağaçları Dengeli Arama Ağaçları Heap Metodları Graf Yapıları
Dersin Kitabı “Data structures using C”, Yedidyah Langsam, Moshe J Augenstein and Aaron M. Tenenbaum, 1990 Referans Kitaplar: E.Horowitz, S.Sahni, and D.Mehta, “Fundamentals of Data Structures in C++”, Computer Science Press, 1995. C.A.Shaffer, “A Practical Introduction to Data Structures and Algorithm Analysis, Java Edition”, Prentice Hall, 1998. A.L.Tharp, “File Organization and Processing”, John Wiley and Sons, 1988.
Genel Kurallar Ödev ve/veya Projeleri birbirinizden kopya almayınız. Böyle bir durum tesbit edildiğinde her iki taraf da 0 almış olur. Teslim zamanı, ilan edilen günde saat 17.00 olarak belirlenmiştir. Geç teslimlerde her geçen gün için notun %25’i eksilir. USB/CD/DVD/email server’ın çalışmaması teslim edilememe noktasında mazeret olarak kabul edilmez.
Notlandırma Laboratuar Başarısı %5 Quizze %5 Ödevler %5 Proje %25 Vize %20 Final %40 Minimum Quizze Sayısı : 3-4 (Önceden Belirtilmeden) Ödev : 1 Every 3 weeks
Neden Bu Dersi Alıyoruz? Bir problemi çözmede etkin veri yapılarını kullanmanın önemine haiz öğrenciler yetiştirebilmektir. Bu dersi tamamladığınızda en sık kullanılan e en önemli veri yapıları tekniklerine aşina olacaksınız. Verinin nasıl organize edildiğini anlamanız ve veriyi uygun yapıda kullanmanız mümkün olacaktır.
Dersin Amacı En çok kullanılan veri yapılarını ve bu veri yapılarının soyut özelliklerini gösterebilek. Her bir veri yapısına uygun tipik algoritmaları ve bu algoritmaların performanslarını tartışmak. Aynı problemi farklı Veri Yapılarıyla çözmemiz durumunda performanslarının karşılaştırılması.
Veri Yapıları: Tanım Veri Elemanlarını saklamayı ve veri yığını içinden çekmeyi sağlayan işlemlerin organize edildiği yapılara Veri Yapıları denir.; Veriyi Yönetmek amacıyla oluşturulan mantıksal sistem; biglisayar formunda verinin gösterimini sağlayan veri modeli.
Veri Yapıları: Detaylı Tanım Veri Yapıları temel veri tiplerinin(int, float, char gibi) gruplanarak A data structure is a way of grouping fundamental types nesneleri tanımlamaya yarayacak paketler oluşturmamızı sağlar. Örneğin: matris satır ve sütunlardan oluşan ve bu satır ve sütunlara yerleştirilen dizi elemanlarından oluşan bir pakettir. Matrisi kullanabilmek için matrisin satır ve sütunlardan ve satır ve sütunları oluşturan dizilerden müteşekkil olduğu bilgisinin bilinmesi gerekmektedir. C veri yapılarını tanımlamak ve üzerinde işlemler yapabilmek amacıyla struct adında bir veri yapısı tanımlamıştır. C++ bu yapıyı class olarak geliştirmiştir.
Veri Yapılarını Hedefi Problemleri çözebilmek için kullanılacak lüzumlu matematiksel bileşenler tanımlamak ve bu bileşenleri geliştirmektir.. Bu soyut bileşenlerin tanımlanması ve bu bileşenler üzerinde yürütülebilecek işlemlerin somut olarak belirlenmesini gerektirir.
Örnek Bir Vaka Electronik Telefon Defteri Farklı VERİLER içermektedir: Ahmet Mehmet Hasan 110 622-9823 112-4433 75 Burhan Polat Electronik Telefon Defteri Farklı VERİLER içermektedir: - isimler - telefon numaraları - adresler Bazı İŞLEMLERİ yapabilmesi gerekmektedir: - ekleme - silme - bir telefon numarasını bulma - bir adresi bulma Bu işlemleri etkin olarak yapabilmek için veriyi nasıl organize etmeliyiz.
İlk Veri Yapısı DİZİ!
Diziler Hakkında birkaç Söz! Diziler aşağıdaki özelliklere sahip veri yapılarıdır: Sonlu Sürekli Hızlı Doğrudan Erişilen Her elemanı aynı tipte olan Ekleme / Silme ??? NASIL??
DİZİLER Dizilere Nasıl Veri Girişi Yapılır Diziler Nasıl İşlenir Diziye bir eleman nasıl eklenir Diziden bir eleman nasıl silinir
DİZİ 2 3 7 8 2 3 4 7 8 4 Sayısını Nasıl Ekleriz 1 Sayısını diziye nasıl ekleriz? İmkansız.