Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

BAZI VERİ YAPILARI Yılmaz KILIÇASLAN.

Benzer bir sunumlar


... konulu sunumlar: "BAZI VERİ YAPILARI Yılmaz KILIÇASLAN."— Sunum transkripti:

1 BAZI VERİ YAPILARI Yılmaz KILIÇASLAN

2 Sunu Planı Bu derste, çizgelerin bellekte nasıl tutulduğunu ve algoritmalarca nasıl işlendiğini anlamak için gereksinim duyabileceğimiz şu veri yapılarını kısaca gözden geçireceğiz: Diziler (Arrays) Bağlı Listeler (Linked Lists) İşaretçiler (Pointers) Yığıtlar (Stack) Kuyruklar (Queues)

3 Diziler - 1 ÖRNEK: Bir firmanın aşağıdaki veriyi barındıran bir müşteri – satıcı dosyası tuttuğunu varsayalım: MÜŞTERİ Adams Brown Clark Drew Evans Farmer Geller Hiller Infeld SATICI Smith Ray Jones Bu tür bir veri üzerinde iki işlem yapabiliriz: İşlem A: Verilen müşteri adı için satıcıyı bulmak. İşlem B: Verilen satıcı adı için müşterileri bulmak. Bu veriyi bellekte saklamak için ilk akla gelen yapı, iki boyutlu bir dizi olabilir. Müşteriler alfabetik sırayla listelendiği için, A işlemi kolaylıkla gerçekleştirilecektir. Fakat, B işlemi için bütün diziyi taramak gerekecektir.

4 Diziler - 2 Müşteri – satıcı verisi, satırları ve sütunları sırasıyla müşterilerin ve satıcıların adlarını alfabetik sırayla tutan ve hücrelerinin bir müşterinin satıcısını gösterirken 1 rakamını, aksi takdirde 0 rakamını barındırdığı bir iki boyutlu dizide de saklanabilir. Bu gösterimin en önemli dezavantajı, matriste çok sayıda 0 barındırarak bellek israfına yol açabilmesidir. Örneğin, firmanın 1000 müşterisi ve 20 satış elemanı mevcut ise, yalnızca 1000 tanesinin faydalı bilgi içerdiği bellek bölgesine ihtiyaç duyulacaktır. Söz konusu dezavantajlar, aynı verinin bağlı liste ile gösterilmesi halinde ortadan kalkacaktır. Adams Brown Clark Drew Evans Farmer Geller Hiller Infeld Smith 1 Ray Jones

5 Bağlı Listeler ve İşaretçiler - 1
Başlangıç X Adres alanı Null İşaretçi Bilgi alanı Bağlı liste, doğrusal olarak birbirine bağlanmış bir veri elemanları toplululuğudur. Veri elemanları, düğümler (nodes) olarak adlandırılır. Elemanların doğrusal sıralanışı, işaretçi barındıran alanlar aracılığıyla gerçekleştirilir.

6 Bağlı Listeler ve İşaretçiler - 2
Müşteri – Satıcı örneğimizi aşağıdaki gibi yapılandırabiliriz: - Müşterileri ve satıcıları alfabetik olarak sıralayan iki ayrı matris kullanmaktayız. - Müşteri dizisine paralel, her müşterinin satıcısının konumunu belirleyen bir işaretçi dizisi bulunmaktadır. - Ayrıca her satıcının müşteri listesi bir bağlı liste içinde verilmiştir. - Artık, bir satıcının müşteri listesini belirlemek için (işlem B), bütün müşteri listesini taramak gerekmeyecektir.

7 Yığıtlar ve Kuyruklar Yığıt (stack): “Son giren ilk çıkar” (last-in first-out (LIFO)) kuralıyla işler. Ekleme ve silme işleminin yalnızca bir uçtan (top) gerçekleştirildiği doğrusal listelerdir. Kuyruk (queue): “İlk giren ilk çıkar” (first-in first-out (FIFO)) kuralıyla işler. Ekleme işleminin bir uçtan (front), silme işleminin ise diğer uçtan (rear) gerçekleştirildiği doğrusal listelerdir.

8 Öncelik Kuyrukları Öncelik Kuyruğu (Priority Queue): Elemanların periyodik olarak eklendiği ama silme işleminin “en yüksek önceliği taşıma” kriterine göre gerçekleştirildiği sistemlerdir. “Öncelikli olarak çocuklar ve kadınlar” ve “güzellikten önce yaş” kuralları, öncelik kuyruğu örnekleridir. Ayrıca, yığıtlar ve kuyruklar özel türden öncelik kuyruklarıdır.

9 Kaynak Lipschutz, Seymour and Marc Lars Lipson (2007). Theory and Problems of Discreete Mathematics. McGraw-Hill.


"BAZI VERİ YAPILARI Yılmaz KILIÇASLAN." indir ppt

Benzer bir sunumlar


Google Reklamları