SlideShare a Scribd company logo
1 of 20
YZM 2116
Veri Yapıları
Yrd. Doç. Dr. Deniz KILINÇ
Celal Bayar Üniversitesi
Hasan Ferdi Turgutlu Teknoloji Fakültesi
Yazılım Mühendisliği
BAŞLAMADAN ÖNCE
• Algoritma ve programlama bilgisi,
• C / C# programlama dili,
• Diziler, structlar, işaretçiler,
• Nesne Yönelimli Programlama
2Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Bu dersi alan öğrencilerin
aşağıdaki konuları bildiği
varsayılarak dersler
işlenecektir:
BÖLÜM - 1
Bu bölümde,
• Algoritmalar ve Veri Yapıları,
• Lineer ve Non-Lineer Veri Yapıları,
• Statik ve Dinamik Veri Yapıları,
• Veri Yapılarının ADT ile Modellenmesi
konularına değinilecektir.
3Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
4
• Bilgisayar bilimlerindeki klasik problem çözme
süreci aşağıdaki gibidir:
Veri Yapıları ve Algoritmalar
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Veri Yapıları ve Algoritmalar (devam…)
5
• Veri yapıları ve Algoritmalar, “Bilgisayar
Bilimleri” alanındaki en köklü ve klasik
konulardan birisidir.
• Tüm bilgisayar programları Algoritma ve Veri
Yapılarından oluşur.
• Algoritmalar veri ve değişkenleri kullanarak bir
problemin çözümüne ulaşır.
• Bir değişken bir integer veya char türünde
bellekte bir hafızalık bir yer tutarken, bir Veri
Yapısı algoritmanın kullanacağı bilgiyi bir grup
hafızada tutar.
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
• Örneğin, Array (dizi) bir veri yapısı bir isme
sahip aynı türde verilerin sabit uzunluklu bir
kümesidir.
• Bu bağlamda, bir Array için programın çalışması
süresince sabit uzunluklu bir hafıza ayrılır. Bu
yönüyle Array statik bir Veri Yapısıdır.
6
Veri Yapıları ve Algoritmalar (devam…)
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
• Bilgisayar bilimlerinde işlenecek veri miktarı
büyüdükçe bu verilerin
o saklanması,
o sıralanması,
o veriler içinde arama yapılması
• gibi temel işlemlerin verimli şekilde (hafıza,
performans) gerçekleştirilebilmesi için farklı Veri
Yapılarının geliştirilmesi ihtiyacı doğmuştur.
7
Veri Yapısı Nedir?
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
• Bir problemin çözümü için öncelikle işlenecek verinin
çözüme uygun şekilde organize edilmesi gerekir. Bu
bağlamda VY tanımı:
• “Veri Yapısı, verinin verimli şekilde kullanılabilmesi için
belirli bir formatta saklanıp organize edilmesini
sağlayan matematiksel modeldir.”
8
Veri Yapısı Nedir? (devam…)
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Linear ve Non-Linear Veri Yapıları
• Stack, Queue, Tree ve Graph’lar Veri Yapılarına
birer örnektir.
• Verinin organize edilmesine bağlı olarak Veri
Yapıları iki grupta sınıflandırılırlar:
1. Linear VY: Elemanların (verinin) sırayla
erişildiği Array, Linked List, Stack ve Queue gibi
yapılardır.
2. Non-Linear VY: Verinin lineer olmayan
(hiyerarşik, network) bir şekilde saklandığı-
erişildiği Tree ve Graph gibi yapılardır.
9Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
10
Veri Yapıları ve Türleri
Veri YapılarıTemel Veri Türleri
int real char bool Linear Non-Linear
Array Tree
Stack
Queue
Linked List Graph
Linear ve Non-Linear Veri Yapıları (devam…)
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
• VY’leri implemente etmek için iki yöntem bulunmaktadır:
– Statik veri tipleri kullanmak (diziler). Statik veri türleri,
kendilerine ayrılan bölümün tamamını kullanmasalar dahi
sabit bir bellek alanı tahsis ederler.
– Dinamik veri tipleri kullanmak (işaretçi, referans türleri).
Program çalışma zamanında boyutları büyüyüp
küçülebilir.
• Statik VY’ler, dinamik VY’leri oluştururlar.
11YZM 2116 – Veri Yapıları
Veri Yapıları Implementasyonu
12
Örnek VY: Linked List (Bağlı Liste)
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
13
Örnek VY: Tree (Ağaç)
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Bir algoritma için benzer VY modelleri arasından
seçim yapılırken hangi kriterleri göz önünde
bulunduracağız?
1. Hafıza kullanımı
2. Verimliliği (kabaca hızı)
14
Hangi VY Kullanacağım?
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Abstract Data Type (ADT)
• ADT (Abstract Data Type), VY bağlamında bir
problemin bilgisayar çözümü için kullanılan, genelde
matematiksel bir modeldir.
• Örneğin, bir grup sayıyı sıralamak için ADT,
– bir dizi ve
– dizi üzerinde çalışan sıralama algoritması olarak düşünülebilir.
• Bir başka ifadeyle, bir ADT
– verinin organizasyonu ve
– onların üzerinde yapılacak işlemlerin matematiksel (kısmen)
modellenmesidir.
• Örneğin, bir tamsayı dizisi ve bu dizi üzerinde read, sort,
search ve print işlemleri basit bir ADT modelidir.
15Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Örnek: Stack ADT
16
Yaygın kullanılan ADT’ler’den biri olan Stack ADT’si,
verinin saklanma biçimi ve bu veri üzerinde tanımlanan
işlemler şeklinde modellenir.
Yığın
İşlemleri
Açıklama
push() Yığına eleman ekler.
pop() En son eklenen elemanı
ayırır.
top() Son eklenen eleman
değerini getirir.
size() Eleman sayısını döndürür.
isEmpty() Yığında eleman olup
olmadığını kontrol eder.
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
• ADT, kullanıcı açısından arka plandaki
karmaşıklığı kullanıcıdan soyutlama (abstraction)
anlamında, OOP mantığına uygun bir yaklaşımdır.
• ADT’ler NYP yaklaşımında Interface ve Abstract
Class ile tanımlanırlar.
• Interface’de metot adları, parametre türleri ve
döndürecekleri değer türleri gibi soyut tanımlamalar
yapılırken metotlar ilgili Interface’i implemente eden
sınıflarda tanımlanır.
17
Örnek: Stack ADT (devam…)
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
18Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Örnek: Stack ADT (devam…)
19
İYİ ÇALIŞMALAR…
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Yararlanılan Kaynaklar
20
• Ders Kitabı:
• Data Structures through JAVA, V.V.Muniswamy
• Yardımcı Okumalar:
• Data Structures and Algorithms in Java, Narashima
Karumanchi
• Data Structures, Algorithms and Applications in Java,
Sartaj Sahni
• Algorithms, Robert Sedgewick
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları

More Related Content

What's hot

Çaylak Javacılara Yol Haritası
Çaylak Javacılara Yol HaritasıÇaylak Javacılara Yol Haritası
Çaylak Javacılara Yol Haritası
Murat Can ALPAY
 
Lista Doblemente Enlazada
Lista Doblemente EnlazadaLista Doblemente Enlazada
Lista Doblemente Enlazada
yordy Macoto
 
listes chainée en JAVA
listes chainée en JAVAlistes chainée en JAVA
listes chainée en JAVA
sunsaida
 

What's hot (20)

Yzm 2116 Bölüm 10 - Hash Table
Yzm 2116 Bölüm 10 - Hash TableYzm 2116 Bölüm 10 - Hash Table
Yzm 2116 Bölüm 10 - Hash Table
 
Yzm 2116 Bölüm 8 - İkili Arama Ağacı - Binary Search Tree
Yzm 2116   Bölüm 8 - İkili Arama Ağacı - Binary Search TreeYzm 2116   Bölüm 8 - İkili Arama Ağacı - Binary Search Tree
Yzm 2116 Bölüm 8 - İkili Arama Ağacı - Binary Search Tree
 
Siralama algoritmalari ileri algoritma analizi
Siralama algoritmalari   ileri algoritma analiziSiralama algoritmalari   ileri algoritma analizi
Siralama algoritmalari ileri algoritma analizi
 
Bağli li̇steler (Linked List) – Yiğinlar (Stack) - Kuyruklar Konu Anlatımı
Bağli li̇steler (Linked List) – Yiğinlar (Stack) - Kuyruklar Konu Anlatımı Bağli li̇steler (Linked List) – Yiğinlar (Stack) - Kuyruklar Konu Anlatımı
Bağli li̇steler (Linked List) – Yiğinlar (Stack) - Kuyruklar Konu Anlatımı
 
linked_lists
linked_listslinked_lists
linked_lists
 
Heap Sort (project).ppt
Heap Sort (project).pptHeap Sort (project).ppt
Heap Sort (project).ppt
 
Çaylak Javacılara Yol Haritası
Çaylak Javacılara Yol HaritasıÇaylak Javacılara Yol Haritası
Çaylak Javacılara Yol Haritası
 
Tree and graph
Tree and graphTree and graph
Tree and graph
 
Quicksort
QuicksortQuicksort
Quicksort
 
AVL Tree.pptx
AVL Tree.pptxAVL Tree.pptx
AVL Tree.pptx
 
Sorting algorithms
Sorting algorithmsSorting algorithms
Sorting algorithms
 
arrays
arraysarrays
arrays
 
Lista Doblemente Enlazada
Lista Doblemente EnlazadaLista Doblemente Enlazada
Lista Doblemente Enlazada
 
Queues
QueuesQueues
Queues
 
Insertion Sorting
Insertion SortingInsertion Sorting
Insertion Sorting
 
Heap sort
Heap sortHeap sort
Heap sort
 
Data Structure (Circular Linked List)
Data Structure (Circular Linked List)Data Structure (Circular Linked List)
Data Structure (Circular Linked List)
 
Data Structures - Lecture 3 [Arrays]
Data Structures - Lecture 3 [Arrays]Data Structures - Lecture 3 [Arrays]
Data Structures - Lecture 3 [Arrays]
 
listes chainée en JAVA
listes chainée en JAVAlistes chainée en JAVA
listes chainée en JAVA
 
Multi ways trees
Multi ways treesMulti ways trees
Multi ways trees
 

Yzm 2116 Bölüm 1 - Veri Yapılarına Giriş

  • 1. YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği
  • 2. BAŞLAMADAN ÖNCE • Algoritma ve programlama bilgisi, • C / C# programlama dili, • Diziler, structlar, işaretçiler, • Nesne Yönelimli Programlama 2Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Bu dersi alan öğrencilerin aşağıdaki konuları bildiği varsayılarak dersler işlenecektir:
  • 3. BÖLÜM - 1 Bu bölümde, • Algoritmalar ve Veri Yapıları, • Lineer ve Non-Lineer Veri Yapıları, • Statik ve Dinamik Veri Yapıları, • Veri Yapılarının ADT ile Modellenmesi konularına değinilecektir. 3Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 4. 4 • Bilgisayar bilimlerindeki klasik problem çözme süreci aşağıdaki gibidir: Veri Yapıları ve Algoritmalar Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 5. Veri Yapıları ve Algoritmalar (devam…) 5 • Veri yapıları ve Algoritmalar, “Bilgisayar Bilimleri” alanındaki en köklü ve klasik konulardan birisidir. • Tüm bilgisayar programları Algoritma ve Veri Yapılarından oluşur. • Algoritmalar veri ve değişkenleri kullanarak bir problemin çözümüne ulaşır. • Bir değişken bir integer veya char türünde bellekte bir hafızalık bir yer tutarken, bir Veri Yapısı algoritmanın kullanacağı bilgiyi bir grup hafızada tutar. Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 6. • Örneğin, Array (dizi) bir veri yapısı bir isme sahip aynı türde verilerin sabit uzunluklu bir kümesidir. • Bu bağlamda, bir Array için programın çalışması süresince sabit uzunluklu bir hafıza ayrılır. Bu yönüyle Array statik bir Veri Yapısıdır. 6 Veri Yapıları ve Algoritmalar (devam…) Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 7. • Bilgisayar bilimlerinde işlenecek veri miktarı büyüdükçe bu verilerin o saklanması, o sıralanması, o veriler içinde arama yapılması • gibi temel işlemlerin verimli şekilde (hafıza, performans) gerçekleştirilebilmesi için farklı Veri Yapılarının geliştirilmesi ihtiyacı doğmuştur. 7 Veri Yapısı Nedir? Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 8. • Bir problemin çözümü için öncelikle işlenecek verinin çözüme uygun şekilde organize edilmesi gerekir. Bu bağlamda VY tanımı: • “Veri Yapısı, verinin verimli şekilde kullanılabilmesi için belirli bir formatta saklanıp organize edilmesini sağlayan matematiksel modeldir.” 8 Veri Yapısı Nedir? (devam…) Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 9. Linear ve Non-Linear Veri Yapıları • Stack, Queue, Tree ve Graph’lar Veri Yapılarına birer örnektir. • Verinin organize edilmesine bağlı olarak Veri Yapıları iki grupta sınıflandırılırlar: 1. Linear VY: Elemanların (verinin) sırayla erişildiği Array, Linked List, Stack ve Queue gibi yapılardır. 2. Non-Linear VY: Verinin lineer olmayan (hiyerarşik, network) bir şekilde saklandığı- erişildiği Tree ve Graph gibi yapılardır. 9Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 10. 10 Veri Yapıları ve Türleri Veri YapılarıTemel Veri Türleri int real char bool Linear Non-Linear Array Tree Stack Queue Linked List Graph Linear ve Non-Linear Veri Yapıları (devam…) Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 11. • VY’leri implemente etmek için iki yöntem bulunmaktadır: – Statik veri tipleri kullanmak (diziler). Statik veri türleri, kendilerine ayrılan bölümün tamamını kullanmasalar dahi sabit bir bellek alanı tahsis ederler. – Dinamik veri tipleri kullanmak (işaretçi, referans türleri). Program çalışma zamanında boyutları büyüyüp küçülebilir. • Statik VY’ler, dinamik VY’leri oluştururlar. 11YZM 2116 – Veri Yapıları Veri Yapıları Implementasyonu
  • 12. 12 Örnek VY: Linked List (Bağlı Liste) Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 13. 13 Örnek VY: Tree (Ağaç) Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 14. Bir algoritma için benzer VY modelleri arasından seçim yapılırken hangi kriterleri göz önünde bulunduracağız? 1. Hafıza kullanımı 2. Verimliliği (kabaca hızı) 14 Hangi VY Kullanacağım? Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 15. Abstract Data Type (ADT) • ADT (Abstract Data Type), VY bağlamında bir problemin bilgisayar çözümü için kullanılan, genelde matematiksel bir modeldir. • Örneğin, bir grup sayıyı sıralamak için ADT, – bir dizi ve – dizi üzerinde çalışan sıralama algoritması olarak düşünülebilir. • Bir başka ifadeyle, bir ADT – verinin organizasyonu ve – onların üzerinde yapılacak işlemlerin matematiksel (kısmen) modellenmesidir. • Örneğin, bir tamsayı dizisi ve bu dizi üzerinde read, sort, search ve print işlemleri basit bir ADT modelidir. 15Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 16. Örnek: Stack ADT 16 Yaygın kullanılan ADT’ler’den biri olan Stack ADT’si, verinin saklanma biçimi ve bu veri üzerinde tanımlanan işlemler şeklinde modellenir. Yığın İşlemleri Açıklama push() Yığına eleman ekler. pop() En son eklenen elemanı ayırır. top() Son eklenen eleman değerini getirir. size() Eleman sayısını döndürür. isEmpty() Yığında eleman olup olmadığını kontrol eder. Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 17. • ADT, kullanıcı açısından arka plandaki karmaşıklığı kullanıcıdan soyutlama (abstraction) anlamında, OOP mantığına uygun bir yaklaşımdır. • ADT’ler NYP yaklaşımında Interface ve Abstract Class ile tanımlanırlar. • Interface’de metot adları, parametre türleri ve döndürecekleri değer türleri gibi soyut tanımlamalar yapılırken metotlar ilgili Interface’i implemente eden sınıflarda tanımlanır. 17 Örnek: Stack ADT (devam…) Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 18. 18Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Örnek: Stack ADT (devam…)
  • 19. 19 İYİ ÇALIŞMALAR… Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 20. Yararlanılan Kaynaklar 20 • Ders Kitabı: • Data Structures through JAVA, V.V.Muniswamy • Yardımcı Okumalar: • Data Structures and Algorithms in Java, Narashima Karumanchi • Data Structures, Algorithms and Applications in Java, Sartaj Sahni • Algorithms, Robert Sedgewick Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları

Editor's Notes

  1. NYP’den gözünüz ısırıyor mu? Abtsract mabstract ne iş sizce, düşünelim, tartışalım?