Mit503 veri yap lar ve algoritmalar ver i yap lar na giri
This presentation is the property of its rightful owner.
Sponsored Links
1 / 63

MIT503 Veri Yapıları ve algoritmalar Ver i Yapıları na Giriş PowerPoint PPT Presentation


  • 294 Views
  • Uploaded on
  • Presentation posted in: General

MIT503 Veri Yapıları ve algoritmalar Ver i Yapıları na Giriş. Y. Doç. Yuriy Mishchenko. Veri yapıları ve veri tipleri. Ders planı V e ri yapıları nedir Neden veri yapıları Basit veri yapıları B ileşik veri yapıları İleri (soyut) veri yapıları. Veri yapıları nedir.

Download Presentation

MIT503 Veri Yapıları ve algoritmalar Ver i Yapıları na Giriş

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Mit503 veri yap lar ve algoritmalar ver i yap lar na giri

MIT503 Veri Yapıları ve algoritmalarVeri YapılarınaGiriş

Y. Doç. Yuriy Mishchenko


Veri yap lar ve veri tipleri

Veri yapıları ve veri tipleri

Ders planı

  • Veri yapıları nedir

  • Neden veri yapıları

  • Basit veri yapıları

  • Bileşik veri yapıları

  • İleri (soyut) veri yapıları


Veri yap lar nedir

Veri yapıları nedir

  • Veri yapısı: algoritmadaki değişkenler yani veriler için kullanılan ve bu verilerle yapılabilir işlemleri belirten bir kavram

  • Değişkenler ve veri yapıları arasındaki farkı:

    • Değişken, bir tür değer içerebilen bir konteyner

    • Veri yapısı, bir tür değer ve o değerle yapılabilir işlemler tanımlayan bir obje


Veri yap lar nedir1

Veri yapıları nedir

  • Örneğin, normal sayılara karşılayan veri yapısı:

    • Bir değer (sayısal)

    • O değer için ekleme, çıkartma, çarpma ve bölme işlem tanımları

  • İşte bunlar birlikte –sayıveri yapısı


Neden veri yap lar

Neden veri yapıları?

  • Herhangi algoritmanın çalışmasının genellikle iki kısmı var: değişken kümesi ve o kümeyi sürekli değiştiren işlem sırası

  • Değişken kümesine genellikle algoritmanın hali denir veya algoritmanın verileri, algoritmanın verilerini değiştiren işlemlere algoritmanın kodu veya aslında algoritma denir


Neden veri yap lar1

Neden veri yapıları?

  • Bu şekilde gerçekleştirilen hesaplamalara algoritma biliminde sonlu durum makinesi denir

  • Sonlu durum makinesi hesaplamanın bir türü, ama tek türü değil, yani hesaplama farklı şekilde de organize edilebilir


Neden veri yap lar2

Neden veri yapıları?

  • Sonlu durum makinesinde bir işlem gerçekleştirmek için, makinenin bir “sonlu”durum var ve işlemi tamamlamak için bu durum bir işlem sırası (yani program) kullanarak adım adım değiştirilir


Neden veri yap lar3

Neden veri yapıları?

  • Sonlu durum makinesi, Alan Turing, Konrad Zuse, John von Neumann matematikçiler tarafından 1930-1950 yıllarda geliştirilmiştir

  • Sonlu durum makinelerine Von Neumann mimarisi veya Turing makinesi de denebilir

  • Bugün tüm bilgisayarlar Von Neumann mimarisini kullanır yani Turing makineleridir


Neden veri yap lar4

Neden veri yapıları?

  • Algoritmalar, bir tür verileri kullanarak belirtilen halini sürekli değiştirerek bir işlemi tamamlar

  • Algoritmaların ihtiyacı olan ve işlemede kullanılacak verileri belirtip temsil etmek için veri yapıları kullanılır


Neden veri yap lar5

C

Neden veri yapıları?

  • Veri yapıları, tüm zamanda algoritmanın hali belirtmek ve o hali güncelleştirmek için kullanılır

  • Dolayısıyla veri yapıları, kullanılacak verilerin doğası ve işlemlere göre seçilir

  • Örneğin – aritmetik işlemler için sayısal veri yapıları kullanılacak; metin işletme için karakter veri yapıları kullanılacak; arama için dizi ve liste gibi bileşik veri yapıları kullanılacak


Neden veri yap lar6

C

Neden veri yapıları?

  • Veri yapıların elde olan işe göre uygun ve faydalı şekilde seçilmesi iyi algoritma oluşturmak için son derece önemlidir


Neden veri yap lar7

Neden veri yapıları?

  • Örnek

    • Sayısal veri yapıları matematiksel işlemler tanımlar ve matematiksel işlemler için kullanılabilir

    • A:=B-4*C


Neden veri yap lar8

Neden veri yapıları?

  • Örnek

    • Diziler (Array), birkaç nesne belirli sırada depolayan bir veri yapısı ve bu nesneleri sırasına göre erişmeye imkan sağlar

    • Bu şekilde diziler, bir sırada olan ve o şekilde kullanılacak veriler için kullanılabilir

    • A[1]:=“a”, A[2]:=“b”, A[3]:=“c”


Neden veri yap lar9

Neden veri yapıları?

  • Örnek

    • Kayıt (Record), farklı adlı eleman içerebilen bir veri yapısı

    • Elemanlar genellikle belirli sayıda ve onların isimlerine göre kayıttan ortaya çıkartılır

    • Kayıdın elemanlarına genellikle alanlar (“fields”) veya üyeler (“members”) denir, kendisi kayıtlar olabilir

    • öğrenci.ad:=“Temel” öğrenci.soyad:=“Okuyucu”öğrenci.matematik.final-not:=“AA”


Neden veri yap lar10

Neden veri yapıları?

  • Örnek

    • Hash tablosu kayıt ver yapısına benzer bir deposu

    • İsim-değer şeklinde verileri organize eder

    • Elemanlarının sayısı belirli olmayabilir, yani yeni alanlar serbest olarak eklenebilir ve kaldırılabilir

    • Hash tabloları dinamik veriler için kullanılabilir; normalde bir dizi gibi algoritmalarda kullanılır

    • öğrenci[“ad”]:=“Temel” öğrenci[“soyad”]:=“Okuyucu”öğrenci[“araba”]:=“Ford öğrenci[“soyad”]:=“Okuyucu””


Neden veri yap lar11

Neden veri yapıları?

  • Örnek

    • Küme (Set) veri yapısı birkaç eleman içerebilir ama elemanlar belirli bir sırada olmaması şartı var, yani eleman kümesi

    • Kümeler elemanın bir çeşiti bir sırasız şekilde depolanması için kullanılabilir


Neden veri yap lar12

Neden veri yapıları?

  • İşe göre doğru veri yapısının kullanılması daha iyi, daha kompakt, daha kolayca okunabilir ve daha verimli şekilde uygulanabilir algortimaların geliştirilmesi için önemlidir


Veri yap lar

Veri yapıları

  • Vari yapıları üç gruba bölünebilir

    • Primitif (temel, basit) veri yapıları

    • Bileşik (dinamik) veri yapıları

    • İleri (soyut) veri yapıları


Basit veri yap lar

Basit veri yapıları

  • En basit veri yapıları, matematiksel sayılardır


Basit veri yap lar1

Basit veri yapıları

Tamsayılar

  • Tamsayı veri yapısı, normal tamsayılara temsil eder

  • Toplama, çıkartma, çarpma, ve bölme işlemler var

  • Daha büyük, daha küçük ve eşitlik işlemler var

  • Önceki ve sonraki ardışıklık işlemi de var


Basit veri yap lar2

Basit veri yapıları

  • Aslında bilgisayarın belleğinde hep veriler tamsayı kullanarak temsil edilip depolanır

  • Programlama dillerinde tamsayı değişken için bellekte kullanılacak alanın uzunluğuna göre genellikle byte, short, int, long tamsayı tipleri var

    • Byte – 8 bit (1 byte), 0’dan 255’e kadar

    • Short – 16 bit (2 byte), 0’dan 65 535’e kadar

    • Int – 32 bit (4 byte), 0’dan 4 294 967 296’e kadar

    • Long – 64 bit (8 byte), 0’dan 18 446 744 073 709 551 616’e kadar

    • Tamsayı değişkenleri hem işaretli hem de işaretsiz olabilir; işaretli ise – aralık iki eş negatif ve pozitif parçaya bölünür, örneğin işaretli Byte -127’den 127’e kadar tamsayılar içerir


Basit veri yap lar3

Basit veri yapıları

Gerçek sayılar

  • Normal gerçek sayılar temsil eder

  • Tekrar aritmetik toplama, çıkartma, çarpma ve bölme işlemleri var

  • Daha büyük, daha küçük ve eşitlik karşılaştırma İşlemleri var

  • Gerçek sayılar için ardışıklık işlemleri yoktur


Basit veri yap lar4

Basit veri yapıları

  • Bilgisayarlarda gerçek sayılar uzun bir tamsayı ile temsil edilirve yaklaşık olarak depolanır, yani örneğin gerçek sayı 2,435143855.... bilgisayarda yaklaşık olarak 2,4434154 sayı olarak kaydedilecek

  • Gerçek sayılar bilgisayarda “mantis” ve “exponent” kullanarak temsil edilir, yani 2.4351E15 aslında 2.4351*1015demek ve burada, 2.4351 mantis ve 15’eexponent tir


Basit veri yap lar5

Basit veri yapıları

  • Programlama dillerinde gerçek sayılar normalde float veya doubleveri tipleriyle verilir

    • Float – 32 bit (4 byte), ±3.4E38aralıkta, 8 basamak mantisli gerçek sayılar

    • Double – 64 bit (8 byte), ±1.8E308aralıkta, 16 basamak mantisli gerçek sayılar

    • Gerçek tipten değişkenler sadece işaretlidir


Basit veri yap lar6

Basit veri yapıları

Boolean (mantıksal) sayıları

  • Sadece iki değer var, yani yanlış (0) ve doğru (1)

  • OR, XOR, AND ve NOT mantıksal işlemleri var

  • Normalde mantiksal işlemler için kullanılır

    Karakterler

  • Algoritmalarda metinlerle çalişmak için karakter veri yapıları kullanılır

  • Programlama dillerinde genellikle byte veya shorttamsayı ile temsil eder ve ilişkili 0-255 tamsayılar “a”, “b”, “c” gibi metindeki karakterleri belirtir


Bile ik veri yap lar

Bileşik veri yapıları

  • Bileşik veri yapıları, verilerin kümeleri toplu olarak algoritmalarda kullanmak için kullanılır


Bile ik veri yap lar1

Bileşik veri yapıları

Diziler

  • En temel bileşik veri yapısı – dizi (Array)

  • Belirli bir sırada olan elemanların dizisini temsil eder

  • Bilgisayarın beleğinde bir blok olarak depolanır ve elemanları onların sırasını kullanarak belleğinde direkt olarak ve çok hızlı erişilebilir

sıra

1

2

3

4

5

6

7

8

elemanlar

a

123

b

Yuri

ders

3.5

503

ttt


Bile ik veri yap lar2

Bileşik veri yapıları

Diziler

  • Elemanlara direkt erişim var olması için, diziler uygun bileşik veriler için en verimli depolama araçtır

  • Uygun veriler demek ki, belirli sırada, belirli sayıda ve boyut olarak eş

sıra

1

2

3

4

5

6

7

8

elemanlar

a

123

b

Yuri

ders

3.5

503

ttt


Bile ik veri yap lar3

Bileşik veri yapıları

Diziler

  • Dizilerin elemanın atanma/alınma işlemi var; bazen arama işlemi de tanımlanır

  • Elemanlar, tipik olarak sayısal “indeks” veya “pozisyon” kullanarak erişilir, örneğin DİZİ[indeks]:=DEĞER

indeks

1

2

3

4

5

6

7

8

elemanlar

a

123

b

Yuri

ders

3.5

503

ttt


Bile ik veri yap lar4

Bileşik veri yapıları

Matrisler

  • İki, üç, vb boyutlu dizilere matris denir

  • Matrislerin elemanları algoritmalarda benzer şekilde kullanılır, yani MATRİS[i,j] – iki indeks


Bile ik veri yap lar5

Bileşik veri yapıları

Seyrek matrisler

  • Seyrek matrisler çoğunlukla 0 içerir, sıfırdan farklı çok az eleman içerir


Bile ik veri yap lar6

Bileşik veri yapıları

  • Seyrek matrisler sadece sıfırdan farklı olan elemanın listesi olarak belirtilebilir, du daha çok ekonomik, bilgisayar belleğinde daha az yer gerekir ve seyrek matrislerle işlemlerin daha hızlı yapılabilmesini sağlar


Bile ik veri yap lar7

Bileşik veri yapıları

  • İkinci en temel bileşik veri yapısı, bağlantılı listelerdir

  • Eğer dizinin boyutu başından belli ve değişemez olmalı, yani statik, bağlantılı listeler değişebilir yada dinamik diziler için kullanılabilir

  • Bağlantılı liste, bir elemanın zinciri olarak düşünülebilir


Bile ik veri yap lar8

Bileşik veri yapıları

Bağlantılı listenin ana fikri:

nesne

nesne

nesne

Her elemanda ilişkili veri ve sonraki elemana işaretçi vardır

işaretçiler

İşaretçileri takip ederek bütün liste geçirilebilir

İki yonlü listelerde sonraki ve önceki elemana işaretçilerkullanılır

işaretçiler


Bile ik veri yap lar9

Bileşik veri yapıları

  • Bağlantılı listedeki eleman sayısı kollayca değiştirilebilir, sonuna her zaman bir daha eleman eklenebilir


Bile ik veri yap lar10

Bileşik veri yapıları

Bağlantılı listelerle işlemleri

  • Ekleme – yeni eleman eklenmesi

    • yeni eleman listenin sonuna eklenip listeye işaretçi ile bağlanır

  • Kaldırma – var olan eleman kaldırılması

    • Kaldırma için, belirtilen elemanı sıradan kaldırıp yanındaki elemanın işaretçileri değiştirilir

  • Arama – listede belirli eleman aranması

    • Listenin birinci elemanıyla başlayınca hedef veya sona ulaşmaya kadar işaretçileri takip edilir


Bile ik veri yap lar11

Bileşik veri yapıları

Bağlantılı listede ekleme ve kaldırma

Ekleme

nesne

nesne

nesne

Yeni eleman sonuna ekleyip yeni işaretçi ile bağlanır

işaretçiler

Kaldırma

nesne

nesne

nesne

Belirtilen elemanıkaldırıp yanındaki elemanın işaretçileri güncelleştirilir


Bile ik veri yap lar12

Bileşik veri yapıları

  • Bu tip işlemlerin algoritma kullanarak tarafımızdan belirtilmesi gerekir

  • Yani baştan bu tip işlem nasıl yapılmasını bilmiyoruz, ve ekleme ve kaldırma işlemleri için bağlantılı liste veri yapısını uygulamak için ilişkili algoritmaları vermemiz gerekiyor


Bile ik veri yap lar13

Bileşik veri yapıları

Bagbaglantili liste = {ilk, son}

eleman={.nesne, .onceki,.sonraki}

Baglantililisteeklemealgoritmasi

liste.ekle(yeni_nesne)

  • yeni_eleman.nesne=yeni_nesneyeni_eleman.onceki:=son

  • yeni_eleman.sonraki:=0

  • son.sonraki:=yeni_eleman

  • Baglatililistekaldirmaalgoritmasi

  • liste.kaldir(hedef)

  • eleman:=liste.bul(hedef)

  • onceki_eleman:=eleman.onceki

  • sonraki_eleman:=eleman.sonraki

  • onceki_eleman.sonraki:= sonraki_eleman


Bile ik veri yap lar14

Bileşik veri yapıları

Hash Tabloları

  • Dinamik boyutta olan veri yapıları için kullanılabilir veri yapısı Hash Tabloları

  • Hash tabloları, bağlantılı listeler gibi boyutu değişebilir, ama elemanlar için farklı depolama sistemi kullanılır

  • O yüzden elemanlara erişim işin belirli durumda daha uygun bir metottur


Bile ik veri yap lar15

Bileşik veri yapıları

  • Hash tablolarda elemanlar belirli bir sırada depolanmaz, normal dizilerde gibi index/anahtar – değeri şeklinde depolanır

  • Elemanlara erişim sağlamak, bir listenin geçirilmesi gerekmiyor, index kullanarak eleman elde edilebilir

  • Anahtar-değer çiftlerinin sayısı değişebilir, yani sabit değil ve dinamik


Bile ik veri yap lar16

Bileşik veri yapıları

Hash tablosu nedir?

Veri bloğu (bilgisayar belleği)

Anahtar - nesne

(1) “Anahtar” için belirli “adres fonksiyonu” kullanarak bilgisayar belleğinde bir adresini hesaplarız – “bellekte adresi = H(anahtar)”

H’ye “hash fonksiyon” denir, ana özelliği – herhangi farklı iki anahtar için farklı adresler verilmeli


Bile ik veri yap lar17

Bileşik veri yapıları

Hash tablosu nasıl çalışıyor ?

Veri bloğu (bilgisayar billeği)

Anahtar - nesne

(2) Hash fonksiyonu farklı anahtarlara farklı depolama adresleri verir

İkinci özelliği – hash fonksiyonu kullanılabilir verinin adres bloğunu kullanır


Bile ik veri yap lar18

Bileşik veri yapıları

Hash tablosu nasıl çalışıyor ?

Veri deposu (bilgisayar billeği)

Anahtar ?

(3) Bellekten nesneyi geri almak için, “anahtar”a göre yeni adres hesaplanır ve nesne o adresten direkt olarak alınır


Bile ik veri yap lar19

Bileşik veri yapıları

Hash tablosu nasıl çalışıyor ?

Veri deposu (bilgisayar billeği)

Anahtar ?

Bu şekilde hash tabloların ana avantajı, herhangi bir nesneyi elde almak için tek operasiyon gerekir – anahtara göre adresi hesaplayıp o adrese bakmak. Yani bağlantılı listede gibi tüm liste geçirilmesi gerekmiyor, N eleman ise hala O(1) zamanda erişim sağlanır (bağlantılı listede O(N))


Bile ik veri yap lar20

Bileşik veri yapıları

  • Hash fonksiyonu, mümkün anahtarların hepsini daha küçük bellek bloğuna yansıtmalı

    • Örneğin, hash tablolarında anahtarlar olarak tipik olarak metinler kullanılır; 10 karakterli metin 6E17 olanak demektir; bilgisayarın belleğin boyutu en çok 1GB=1E9, yani nasıl çözülür?

Mümkün anahtarlar - ÇOK

Kullanılabilir bellek adresleri - AZ

Gerçek hayatta karşılaşılan anahtarlar AZ !!!

Hash fonksiyonu

anahtaradres


Bile ik veri yap lar21

Bileşik veri yapıları

Yani genellikle, bütün mümkün anahtarlar gerçek hayatta karşılaşılamaz

Mümkün anahtarlar - ÇOK

Kullanılabilir bellek adresleri - AZ

Gerçek hayatta karşılaşılan anahtarlar AZ var !!!

Hash fonksiyon

anahtaradres


Bile ik veri yap lar22

Bileşik veri yapıları

  • Programlamada ve algoritmalarda çok kullanılan veri yapıları yığınlar (stack) ve kuyruklar (queue) dır

  • Yığınlar ve kuyruklar özel dinamik boyutta diziler

  • Yığınların ve kuyrukların bilgisayarlarda genellikle işlemci seviyesinde çok verimli uygulanmaları var, yani bu tip dizi algoritma için kullanılması, mümkünse, çok verimlidir


Bile ik veri yap lar23

Bileşik veri yapıları

Yığınlar

  • Yığınlar (stack) sıralı giriş kaydetme için kullanılır

  • Sıralı girişin bir örnek metin satırıdır, yani elemanlar zamanla birer birer gelir

  • Last-İn-First-Out (LİFO) ve First-İn-First-Out (FİFO yada kuyruk yada queue) iki tür var

girdi

v

e

r

i

y

a

p

ı


Bile ik veri yap lar24

Bileşik veri yapıları

  • Last-in-first-out (LİFO) ve First-in-first-out (FİFO) yığınları arasında farkı

1

girdi

girdi

2

LİFO 

3

girdi

3

girdi

çıktı

1

2

girdi

 FİFO

3

girdi

1

çıktı


Bile ik veri yap lar25

Bileşik veri yapıları

  • Bilgisayar belleğinde yığınlar belirli boyutta bir dizi olarak temsil edilir

  • Giriş geldiğinde o dizi sürekli şekilde başından doldurulur

  • Elemanı elde elmak için, o eleman yada başından yada sonundan çekilir (FIFO/LIFO’ya göre)

s

t

a

c

k

FİFO

LİFO


Bile ik veri yap lar26

Bileşik veri yapıları

  • Yığının deposunun sonlu olduğu için,

    • Yığınlar dolu üzerine çıkabilir, bu durumda onlara “overflowed” (terim) diyoruz

    • “Stack overflow” yaygın bir güvenlik hatası ve açığıdır

    • Bilgisayar belleğinde yığın boyutu yeterli değilse, bilgisayar belleğindeki diğer veriler yada program kodu üstüne yazdırmaya imkan vak

s

t

a

c

k

WIN

DO

WS

yığın deposu

yürüten kod(haker saldırısı)

“stack overflow” yürüten kodu uzerinde habis veriyi yazabilir


Bile ik veri yap lar27

Bileşik veri yapıları

Yığınlarla işlemleri

  • PUSH – (itmek) nesne eklemek, FIFO/LIFO şeklinde olabilir

  • POP – nesne alıp kaldırmak, FIFO/LIFO şeklinde olabilir

  • EMPTY – yığının boş olmasını kontrol etmek

EMPTY

1

PUSH

2

PUSH

3

PUSH

3

POP


Bile ik veri yap lar28

Bileşik veri yapıları

Kuyruklar (queue)

  • Kuyruklar, yığınlar gibi sıralı giriş için kullanılır

  • FİFO yığınlarına eşit, ama farklı terimler kullanılır: “push” ve “pop” yerine “queue” ve “dequeue” denir

  • Öncelikli kuyruklar (priority queues) önemli özel bir kuyruk tipidir

    • Bütün nesneler için bir “öncelik” vardır

    • “Queue”/”Push” eski push gibi çalışır, ama

    • “Dequeue”/”Pop”, en ilk gelen nesne yerinde en yüksek öncelikte olan nesneyi verir


Bile ik veri yap lar29

Bileşik veri yapıları

Öncelikli kuyruk

öncelik

nesne

(a,1)

queue

(b,2)

queue

kuyruk

(c,0)

queue

b

dequeue

Daha yüksek önceliğe nesnesi önüne gidiyor


Bile ik veri yap lar30

Bileşik veri yapıları

Öncelikli kuyruklarla işlemler

  • ADD – yeni nesne eklemek

  • POLL – nesne alıp kaldırmak

  • PEEK – nesne kaldırmadan almak, sadece nesneye bakmak demek yani

  • EMPTY – kuyruğun boş olmasını kontrol etmek


Leri veri yap lar

İleri veri yapıları

  • Daha ileri veri yapıları genellikle farklı tür matematiksel kolleksiyon veya kümeleri uygularlar

    • Küme matematiğin en temel bir kavramdır, ve bilgisayar biliminde de çok önemlidir

    • Bunlardan en önemli olan veri yapıları kümeler, haritalar, veri ağaçlar ve graflar (daha sonra detayla geçireceğiz)


Leri veri yap lar1

İleri veri yapıları

Küme veri yapısı

  • Normal matematiksel küme temsil eder

    • Nesnelerin bir çeşiti sıra olmadan depolar

    • Bu arada yapılabilir en temel işlemi, bir nesnenin kümede var olduğu olmadığını söylemektir


Leri veri yap lar2

İleri veri yapıları

Küme ile işlemler

  • Üyelik işlemi, belirli nesnenin kümede var olduğu olmadığı

  • Ekleme işlemi, nesneyi kümeye eklemek

  • Kaldırma işlemi, nesneyi kümeden kaldırmak

  • İteratör veya yineleyici işlemi, ilk bir nesne ile baylayınca sürekli bir sonraki nesneyi vererek bütün kümeyi geçer

  • Kümenin boyutu, kümedeki nesne sayısı


Leri veri yap lar3

İleri veri yapıları

Map veya Haritalar

  • Harita veri yapısı matematiksel fonksiyonlar temsil eder, yani bir x argumanı karşılayan değeri atanır (x → f(x))


Leri veri yap lar4

İleri veri yapıları

Haritalar ile işlemler

  • Belirli parametrenin haritaya uygun olup olmadığı

  • Belirli bir sonucun haritay uygun olup olmadığı

  • Bütün uygun parametreler kümesini vermek

  • Bütün mümkün sonuclar kümesini vermek

  • Belirli parametreye karşılayan sonucu vermek

  • Yeni bir “parametre → sonuç” bağlantısı kurmak


Mit503 veri yap lar ve algoritmalar ver i yap lar na giri

Ödev

  • LIFO yığın uygulayın

    • LIFO = {DIZI, varolanelemansayisi n}

    • PUSH, POP ve EMPTY işlemleri için gerekli algoritmalar yazın (sözde kod kullanarak)

  • Küme veri yapısıni uygulayın

    • Küme = { bir dinamik deposu, bağlantılı liste veya hash tablo olabilir, fark etmez }

    • Üyelik, ekleme, kaldırma, boyut vb işlemler için gerekli algoritmalar yazın (sözde kod kullanarak)


Not tipli ve tipsiz veri yap lar

Not: tipli ve tipsiz veri yapıları

Tipli ve tipsiz kolleksiyonlar

  • Kolleksiyonda genel türlü nesneler içerilebilirse (örneğin aynı kolleksiyonda tamsayılar, gerçek sayılar, karakterler, vb olablirse), böyle kolleksiyona tipsiz denir

  • Tipli kolleksiyonda sadece belirli tipten nesneler içerilebilir

    • Örneğin: Kolleksiyonda içerilen nesnelerin hepsi tamsayı olmalı

  • Programlamada bunun gibi ifadeler bazen görülebilir

    • Set<String> - sadece karakterler (String) içeren bir küme (Set)

    • Map<String,Integer> - sadece karakterlerden (String) tamsayılara (Integer) bir harita (fonksiyon)

    • Hash<String,String> - sadece karakterlerden (String) karakterlere (String) bir hash tablosu (Hash)

  • Bir yerde görecekseniz, demek bu.


  • Login