YZM 2116 Veri Yapıları

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

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları

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

YZM 2116 Veri Yapıları

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

YZM 2116 Veri Yapıları

ALGORİTMA VE PROGRAMLAMA II

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

ALGORİTMA VE PROGRAMLAMA II

Yrd. Doç. Dr. Caner ÖZCAN

ALGORİTMA VE PROGRAMLAMA I

Yrd. Doç. Dr. Caner ÖZCAN

ALGORİTMA VE PROGRAMLAMA I

YZM 2105 Nesneye Yönelik Programlama

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

YZM 2116 Veri Yapıları

ALGORİTMA VE PROGRAMLAMA II

YZM 2108 Yazılım Mimarisi ve Tasarımı

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

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

VERİ YAPILARI DERS NOTLARI BÖLÜM 4 STACK (YIĞIN, YIĞIT) Yard. Doç. Dr. Deniz KILINÇ

Konular. Hafta 5 Veri Tipleri (Devam) BLG339 PROGRAMLAMA DİLLERİ KAVRAMI

Arasınav Örnek Soruları Bahar 2018

ALGORİTMA VE PROGRAMLAMA II

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

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

{\} /\ Suhap SAHIN Onur GÖK

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

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler:

YZM 2108 Yazılım Mimarisi ve Tasarımı

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

İ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İ

VERİ YAPILARI VE PROGRAMLAMA

Doğu Akdeniz Üniversitesi Bilgisayar Mühendisliği Bölümü. BLGM 318 Ara Sınavı Đlkbahar Dönemi 13 Nisan Ad, Soyad Öğrenci No.

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma

Bölüm 6. Veri Türleri ISBN

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

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

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

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN

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

Yrd. Doç. Dr. Caner ÖZCAN

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA

Programlama Dilleri 3

YZM 2105 Nesneye Yönelik Programlama

JAVADA DİZİ İŞLEMLERİ

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA I

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

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA I DERS#1

Algoritma Geliştirme ve Veri Yapıları 1 Temel Algoritma Kavramları. Mustafa Kemal Üniversitesi

Yrd. Doç. Dr. Caner ÖZCAN

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA I

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

YZM 2105 Nesneye Yönelik Programlama

İ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İ

Veri Yapıları Laboratuvarı

HSancak Nesne Tabanlı Programlama I Ders Notları

Pointer Kavramı. Veri Yapıları

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

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi

Yrd. Doç. Dr. Caner ÖZCAN

Ders 4: Diziler (Arrays( Arrays) barisgokce.com

Ağaç (Tree) Veri Modeli

Özyineleme (Recursion)

BMT207 VERİ YAPILARI DATA STRUCTURE

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

VERİ YAPILARI DATA STRUCTURE GİRİŞ

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#1: ALGORİTMA KAVRAMI

ALGORİTMA ANALİZİ. Cumhuriyet Üniversitesi Bilgisayar Mühendisliği Bölümü

Göstericiler (Pointers)

Final Sınavı Soruları Güz, Süre: 90 Dakika

ALGORİTMA VE PROGRAMLAMA I

C++ ile Nesneye Dayalı Programlama

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-11 Karakter Diziler. Yrd. Doç. Dr. Ümit ATİLA

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

ENDÜSTRİ MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Alıştırma 1: Yineleme

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

DOKUZ EYLÜL ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ DEKANLIĞI DERS/MODÜL/BLOK TANITIM FORMU. Dersin Kodu: CME 1002

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

Sunum İçeriği. Programlamaya Giriş

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#10

Örnek1: #include <iostream> #include <string> using namespace std;

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

ALGORİTMA VE PROGRAMLAMA I

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

Transkript:

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 Bu dersi alan öğrencilerin aşağıdaki konuları bildiği varsayılarak dersler işlenecektir: Algoritma ve programlama bilgisi, C / C# programlama dili, Diziler, structlar, işaretçiler, Nesne Yönelimli Programlama 2

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. 3

Veri Yapıları ve Algoritmalar Bilgisayar bilimlerindeki klasik problem çözme süreci aşağıdaki gibidir: 4

Veri Yapıları ve Algoritmalar (devam ) 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. 5

Veri Yapıları ve Algoritmalar (devam ) Ö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ısı Nedir? 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? (devam ) 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

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. 9

Linear ve Non-Linear Veri Yapıları (devam ) Veri Yapıları ve Türleri Temel Veri Türleri Veri Yapıları int real char bool Linear Non-Linear Array Linked List Stack Queue Tree Graph 10

Veri Yapıları Implementasyonu 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. YZM 2116 Veri Yapıları 11

Örnek VY: Linked List (Bağlı Liste) 12

Örnek VY: Tree (Ağaç) 13

Hangi VY Kullanacağım? 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

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. 15

Örnek: Stack ADT 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 push() pop() top() size() isempty() Açıklama Yığına eleman ekler. En son eklenen elemanı ayırır. Son eklenen eleman değerini getirir. Eleman sayısını döndürür. Yığında eleman olup olmadığını kontrol eder. 16

Örnek: Stack ADT (devam ) 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 ) 18

İYİ ÇALIŞMALAR 19

Yararlanılan Kaynaklar 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 20