Veri Yapıları. Yrd. Doç. Dr. Şadi Evren ŞEKER



Benzer belgeler
VERİ YAPILARI DERS NOTLARI BÖLÜM 1 GİRİŞ. Yard. Doç. Dr. Deniz KILINÇ

Yrd. Doç. Dr. Ümit ATİLA

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-7 Sıralama Algoritmaları

YZM 2116 Veri Yapıları

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ

VERİ YAPILARI LİSTELER. Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ

Max - Min Heap Tree (Max ve Min Yığıt Ağaçları) Veri Yapıları ve Algoritmalar 2 - Mustafa EGE Ders Notları

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Yrd. Doç. Dr. Caner ÖZCAN

BMT207 VERİ YAPILARI DATA STRUCTURE

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#6: AZALT VE FETHET YÖNTEMİ

DOSYA ORGANİZASYONU. Ağaç Yapıları ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

I Java Veri Yapıları 1

YZM 2116 Veri Yapıları

DOSYA ORGANİZASYONU. Çarpışma çözümleme yöntemleri ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

YZM 2116 Veri Yapıları

Azalt ve Fethet Algoritmaları

YZM 2116 Veri Yapıları

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Graflar bilgi parçaları arasındaki ilişkileri gösterirler.

BMB204. Veri Yapıları Ders 9. B+ Ağacı, Hash, Heap. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

Ağaç Yapıları (Tree Structures) Kütük Organizasyonu 1

Final Sınavı Soruları Bahar 2018

Dosyalarda Farklı Yaklaşımlar. Kütük Organizasyonu 1

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ

Standard Template Library

Fiziksel Tasarım Konuları. Dosya Organizasyon Teknikleri Kayıt Erişim Yöntemleri Veri Yapıları

Final Sınavı Örnek Soruları Bahar 2018

YZM 2116 Veri Yapıları

Veri Yapıları & Algoritmalar

VERİ YAPILARI DATA STRUCTURE GİRİŞ

Yrd. Doç. Dr. Caner ÖZCAN

YZM 2116 Veri Yapıları

Veri Yapıları Laboratuvarı

{\} /\ Suhap SAHIN Onur GÖK

Algoritmalar. Heap Sort. Bahar 2017 Doç. Dr. Suat Özdemir 1

BIP116-H14-1 BTP104-H014-1

ALGORİTMA VE PROGRAMLAMA I

VERİ YAPILARI DERS NOTLARI BÖLÜM 5 QUEUE (KUYRUK) Yard. Doç. Dr. Deniz KILINÇ

Çizgeler (Graphs) Doç. Dr. Aybars UĞUR

Yrd. Doç. Dr. Caner ÖZCAN

ALGORİTMA İ VE PROGRAMLAMA

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ

Alıştırma 1: Yineleme

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

BAĞLAÇLI LİSTELER LINKED LISTS

Bilgisayar programlamanın üç temel mantık yapısından biridir. Diğer ikisi ise Seçilim(Selection) ve Döngü(Loop, Iteration)dür.

#$% &'#(# Konular. Direct File Organization. Progressive Overflow Buckets Linear Quotient Brent s Method Binary Tree

Programlama Dilleri II

VERİ YAPILARI. GRAPH LAR Düzce Üniversitesi Teknoloji Fakültesi ÖĞR.GÖR.GÜNAY TEMÜR 1

VERİ YAPILARI VE PROGRAMLAMA

Görsel Programlama DERS 04. Görsel Programlama - Ders04/ 1

Ağaç (Tree) Veri Modeli

BAĞLI LİSTELER BAĞLI LİSTELER

BAĞLAÇLI LİSTELER LINKED LISTS

KUYRUKLAR QUEUES. Doç. Dr. Aybars UĞUR

Algoritmalar. Arama Problemi ve Analizi. Bahar 2016 Doç. Dr. Suat Özdemir 1

Algoritmalar. İkili Arama Ağaçları. Bahar 2016 Doç. Dr. Suat Özdemir 1

ALGORİTMA VE PROGRAMLAMA II

Yrd. Doç. Dr. Caner ÖZCAN

YZM 2116 Veri Yapıları

Week 6: Bağlı Liste (Linked List) BAĞLI LİSTE KAVRAMI TEKİL (SINGLE) BAĞLI LİSTE ÇİFT (DOUBLE) BAĞLI LİSTE DAİRESEL (CIRCULAR) BAĞLI LİSTE

Arasınav Örnek Soruları Bahar 2018

BLM 112- Programlama Dilleri II. Hafta 5 İşaretçiler (Pointers)

YIĞIN (STACK) YAPISI. 1 Öğr.Gör.Bülent Çobanoğlu, Sakarya Üniversitesi, Adapazarı MYO

C++ Dersi: Nesne Tabanlı Programlama 2. Baskı

Algoritmalar. Doğrusal Zamanda Sıralama. Bahar 2017 Doç. Dr. Suat Özdemir 1

Çanakkale Onsekiz Mart Üniversitesi. Bilgisayar Mühendisliği Bölümü

ALGORİTMA VE PROGRAMLAMA I

BIL222 Veri Yapıları ve Algoritmalar

AĞAÇLAR. Doç. Dr. Aybars UĞUR

6.Hafta Kıyım Fonksiyonu (Hashing), BST. Doğrudan erişim tabloları Çarpışmaları ilmekleme ile çözmek Kıyım fonksiyonu seçimi Açık adresleme

Ağaçlar (Trees) Ağaçlar (Trees)

F(A, N, K) // A dizi; N, K integer if N<0 then return K; if A[N]>K then K = A[N]; return F(A, N-1, K);

Teori/Saat Uygulama/Saat Laboratuar/Saat AKTS BLM Dersin Amacı

SOMEBODY ELSE'S. ( DATA STRUCTURES and ALGORITHMS ) Veri Yapıları ve Algoritmaları

Algoritma Analizi ve Büyük O Notasyonu. Şadi Evren ŞEKER YouTube: Bilgisayar Kavramları

Java, Python ve Ruby Dillerinin Performans Karşılaştırması

YZM 2116 Veri Yapıları

GRAPH LAR Düzce Üniversitesi Teknoloji Fakültesi VERİ YAPILARI. Bilgisayar Mühendisliği ÖĞR.GÖR.GÜNAY TEMÜR 1

b) Algoritmanızın en kötü durumda işlem zamanını asimptotik olarak bulunuz

AĞAÇ-TREE VERİ YAPISI

Teori/Saat Uygulama/Saat Laboratuar/Saat AKTS BLM Dersin Amacı

AĞAÇLAR TREES. Doç. Dr. Aybars UĞUR

Veri Yapıları. for(i=1;i<n;i++) { ekle=d[i]; for (k=i 1; k>=0 && ekle<=d[k] ;k ) D[k+1]=D[k]; /* Geriye kaydırılıyor*/

BİL-341 ALGORİTMALAR BÜYÜK O NOTASYONU AHMET ATAKAN atakanahmet@hotmail.com KIRGIZİSTAN-TÜRKİYE MANAS ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ

Veri Yapıları. Öğr.Gör.Günay TEMÜR Düzce Üniversitesi Teknolojis Fakültesi

Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM Veri Yapıları Dersi. Proje#2

YZM VERİ YAPILARI DERS#9: HASH FONKSİYONLARI

Olimpiyat Soruları. sonuçları tekrar fonksiyonda yerine koyup çıkan tüm sonuçları toplayan program (iterasyon sayısı girilecek)

Yapay Zeka. BM437, Bahar Öğretim Üyesi: Yrd. Doç. Dr. Mehmet ŞİMŞEK

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-3 İşaretçiler (Pointer) (Kısım-2)

BLM-431 YAPAY ZEKA. Ders-5 Bilgili Arama Yöntemleri. Yrd. Doç. Dr. Ümit ATİLA

Bilgisayar Programcılığı. Ögr. Gör. Cansu AYVAZ GÜVEN

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

BLM-431 YAPAY ZEKA. Ders-4 Bilgisiz Arama Yöntemleri. Yrd. Doç. Dr. Ümit ATİLA

Algoritmaların Karşılaştırılması. Doç. Dr. Aybars UĞUR

Arama Algoritmaları. Doğrusal Arama ve Binary Arama

Algoritmalar. Sıralama Problemi ve Analizi. Bahar 2017 Doç. Dr. Suat Özdemir 1

DOSYA ORGANİZASYONU. Sıralı erişimli dosya organizasyonu yöntemleri ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

Transkript:

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.

Veri (Data) Bilgi (Information) Malumat(Knowledge) Bilgelik (Wisdom) Bilmenin Seviyeleri

Veri Yapılarına Neden İhtiyaç duyulur Hafıza ve Zaman ikilemi Probleme özel çözümler Verinin kolay erişilebilirliği

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)

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)

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)

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)

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

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)

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)

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

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

Bağlı Listeye Yeni Eleman Eklenmesinin Görsel hali Dolaşıcı (Iterator) Dolaşıcı (Iterator) Dolaşıcı (Iterator)

Çift Bağlı Listeye Eleman Eklenmesi Dolaşıcı (Iterator) Dolaşıcı (Iterator) Dolaşıcı (Iterator) Dolaşıcı (Iterator)

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

Listeden Düğüm Silinmesi Dolaşıcı (Iterator) Dolaşıcı (Iterator) Dolaşıcı (Iterator)

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ı

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.

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

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ğı 0 1 2 3 4 5 6 7 3'ün Solu 0 1 2 Sol Düğüm : 2i +1 Sağ Düğüm: 2i +2 3 4 5 6 7

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

Yığıtlama (Heapify) Eleman Eklenmesi 25 7 32 43 25 43 35 89 45 46 32 89 45 46 7 35 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 7 25 32 43 35 89 45 46 7 7 25 43 32 89 45 46 35 3'ün Solu

Yığıtlarda Silme 25 43 32 43 32 46 35 89 45 46 35 89 45 Kök 0'ın Solu 0'ın Sağı 1'in Solu 1'in Sağı 2'nin Solu 0 1 2 3 4 5 6 25 32 43 35 89 45 46 43 32 35 89 46 45 2'nin Sağı

Yığıtlama Karışık bir dizinin yığıtlanması 15 3 11 35 8 2 15

Yığıtlama 15 35 35 11 15 15 3 8 2 15 3 8 2 11 15 35 15 3 8 2 11

Yığıt Sıralaması (Heap Sort) 25 32 43 35 89 45 46

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

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