veri yapıları yrd. doç. dr. Şadi evren Şeker not: bu sunumun … · veri yapıları yrd. doç....

28
Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar Mühendisliği Bölümü, Bilgisayar Mühendisliğine Giriş Dersi için genel amaçlı veri yapıları hakkında bilgi vermektir.

Upload: others

Post on 07-Jan-2020

17 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun … · Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar

Veri Yapıları

Yrd. Doç. Dr. Şadi Evren ŞEKER

Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar Mühendisliği Bölümü, Bilgisayar

Mühendisliğine Giriş Dersi için genel amaçlı veri yapıları hakkında bilgi vermektir.

Page 2: Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun … · Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar

Bilmenin Seviyeleri

●Veri (Data)●Bilgi (Information)●Malumat(Knowledge)●Bilgelik (Wisdom)

Page 3: Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun … · Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar

Veri Yapılarına Neden İhtiyaç duyulur

● Hafıza ve Zaman ikilemi● Probleme özel çözümler● Verinin kolay erişilebilirliği

Page 4: Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun … · Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar

Veri Yapılarına Erişim Şekilleri

● Ardışık Erişim Şekilleri (Sequential Access)● FIFO (First In First Out) , İlk Giren İlk Çıkar● LIFO (Last In First Out) , Son Giren İlk Çıkar

● Doğrudan Erişim Şekilleri (Rast Gele Erişim, Random Access)

Page 5: Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun … · Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar

Klasik Veri Yapıları

● Yığın (Stack)● Sıra (Queue)

● Öncelik Sırası (Priority Queue)● Dairesel Sıra (Circular Queue)

● Diziler (Array)● Ağaçlar (Tree)

Page 6: Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun … · Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar

Diziler

● Rastgele erişim mümkündür● Gösterici Aritmetiği Kullanılabilir (pointer

artihmetic)● Hafızada Sabit yer ayırılması gerekir(Static

memory allocation)

Page 7: Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun … · Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar

Diziler Kullanılarak Veri Sıralama

● Seçerek Sıralama (Selection Sort)● Rastgele Sıralama (Bogo Sort)● Kabarcık Sıralaması (Baloncuk Sıralaması,

Bubble Sort)● Öne Ekleme Sıralaması (Insert Front Sort)● Kabuk Sıralaması (Shell Sort)● Sallama Sıralaması (Shaker's Sort)

Page 8: Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun … · Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar

Verinin Aranması

● Doğrusal Arama (Linear Search)● İkili Arama Algoritması (Binary Search)

Page 9: Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun … · Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar

Gösterici Kullanımı

● Bağlı Listeler (Linked List)● Çift Bağlı Listeler (Doubly Linked List)● Çift Uçlu Listeler (Double Ended Lists)● Dairesel Bağlı Listeler (Circular Lists)

● Ağaçlar (Tree)● İkili Ağaçlar (Binary Tree)● N-li Ağaçlar (N-ary Tree)● Yığıt (Heap)

Page 10: Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun … · Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar

Bağlı Liste Görselleştirmesi

●Tekli Bağlı Liste (Singular Linked List)●Çift Uçlu Bağlı Liste (Double Ended Linked List)●Çift Yönlü Bağlı Liste (Doubly Linked List)●Dairesel Bağlı Liste (Circular Linked List)

Page 11: Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun … · Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar

Dolaşma Algoritmaları

● Dolaşıcı (Iterator) Kullanılması● Listeye Ekleme● Listeden Silme● Listeden Okuma / Arama

Dolaşıcı (Iterator)

Page 12: Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun … · Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar

Bağlı Listeye Ekleme İşlemi

● Eklenecek Yerden bir önceye Gidilir● Yeni Düğüm (node) oluşturulur● Yeni düğümün sonrasına, eklemeden sonraki

düğümün sonrası atanır● Dolaşıcının (Iterator) sonrasına yeni düğüm

atanır

Page 13: Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun … · Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar

Bağlı Listeye Yeni Eleman Eklenmesinin Görsel hali

Dolaşıcı (Iterator)

Dolaşıcı (Iterator)

Dolaşıcı (Iterator)

Page 14: Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun … · Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar

Çift Bağlı Listeye Eleman Eklenmesi

Dolaşıcı (Iterator)

Dolaşıcı (Iterator)

Dolaşıcı (Iterator)

Dolaşıcı (Iterator)

Page 15: Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun … · Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar

Bağlı Listeden Eleman Silinmesi

● Silinecek Düğümden öncesine kadar gidilir● Dolaşıcının sonrası, sonrasının sonrasına

atanır.● Eski düğüm hafızadan kaldırılır

Page 16: Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun … · Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar

Listeden Düğüm Silinmesi

Dolaşıcı (Iterator)

Dolaşıcı (Iterator)

Dolaşıcı (Iterator)

Page 17: Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun … · Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar

Bağlı Listelerde Veri Organizasyonu

● Sıralı Bağlı Listeler● Bağlı Listede Arama

● Doğrusal Arama● İkili Arama (Binary Search): Ağacın bağlı liste

üzerinde kodlanması

Page 18: Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun … · Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar

Ağaçlar

● Çizge Kuramı Dersinin Notlarını Hatırlayınız (Graph Theory)

● Klasik bir ağaç aşağıdaki yapıdadır● Veri● Çocuklarını gösteren işaretçiler (pointers)● Bir ağaçtaki her düğümün tek çocuğu varsa bağlı

listedir.

Page 19: Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun … · Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar

Ağaçlarda Dolaşma

● Derin Öncelikli Dolaşma (Depth First Search)● LRN● RLN● RNL● LNR

● Sığ Öncelikli Dolaşma (Breadth First Search)● NLR● NRL

Page 20: Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun … · Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar

Bir Ağacın Dizide Kodlanması

Kök 0'ın Solu 0'ın Sağı 1'in Solu 1'in Sağı 2'nin Solu

2'nin Sağı

3'ün Solu

0 1 2 3 4 5 6 7

0

1 2

3 4 5 6

7

Sol Düğüm : 2i +1Sağ Düğüm: 2i +2

Page 21: Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun … · Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar

Yığıtlar

● Azami Yığıt (Max-Heap)● Asgari Yığıt (Min-Heap)● Yığıtlama (Heapify)

Page 22: Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun … · Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar

Yığıtlama (Heapify)● Eleman Eklenmesi

25

32 43

35 89 45 46

7

7

25 43

32 89 45 46

35

Kök 0'ın Solu 0'ın Sağı 1'in Solu 1'in Sağı 2'nin Solu

2'nin Sağı

3'ün Solu

0 1 2 3 4 5 6 7

25 32 43 35 89 45 46 7

7 25 43 32 89 45 46 35

Page 23: Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun … · Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar

Yığıtlarda Silme

25

32 43

35 89 45 46

Kök 0'ın Solu 0'ın Sağı 1'in Solu 1'in Sağı 2'nin Solu

2'nin Sağı

0 1 2 3 4 5 6

25 32 43 35 89 45 46

43 32 35 89 46 45

43

32 46

35 89 45

Page 24: Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun … · Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar

Yığıtlama

● Karışık bir dizinin yığıtlanması

15

3 11

35 8 2 15

Page 25: Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun … · Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar

Yığıtlama15

35 11

3 8 2 15

15

35 15

3 8 2 11

35

15 15

3 8 2 11

Page 26: Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun … · Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar

Yığıt Sıralaması (Heap Sort)

25

32 43

35 89 45 46

Page 27: Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun … · Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar

B-Ağaçları (B-Tree)

● B-Ağaçlarının Düğüm Boyu (Node Size)● B-Ağacında Arama● B-Ağacına Ekleme● B-Ağacından Silme

Page 28: Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun … · Veri Yapıları Yrd. Doç. Dr. Şadi Evren ŞEKER Not: Bu sunumun amacı, İstanbul Üniversitesi Bilgisayar

Özetleme (Hashing)

● Özetleme Fonksiyonları ● Özetleme Tabloları● Çakışma (Collusion)