veri yapıları laboratuvarı - karabük...

26
2013 2014 Ders Sorumlusu: Yrd. Doç. Dr. Hakan KUTUCU Lab. Sorumlusu: Arş. Gör. Caner ÖZCAN Veri Yapıları Laboratuvarı

Upload: others

Post on 24-Dec-2019

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Veri Yapıları Laboratuvarı - Karabük Üniversitesimuh.karabuk.edu.tr/bilgisayar/lab/foyler/veri_yapilari...7 Uygulama 3: Linkli Liste Yapıları ve İşlemleri 3.1. Amaç ve Kapsam

2013 2014

Ders Sorumlusu: Yrd. Doç. Dr. Hakan KUTUCU

Lab. Sorumlusu: Arş. Gör. Caner ÖZCAN

Veri Yapıları Laboratuvarı

Page 2: Veri Yapıları Laboratuvarı - Karabük Üniversitesimuh.karabuk.edu.tr/bilgisayar/lab/foyler/veri_yapilari...7 Uygulama 3: Linkli Liste Yapıları ve İşlemleri 3.1. Amaç ve Kapsam

2

İÇİNDEKİLER

Uygulama 1: Diziler ve İşaretçiler, Dinamik Bellek Ayırma .............................................. 4

1.1. Amaç ve Kapsam ....................................................................................................................... 4

1.2. Uygulamadan Önce Yapılması Gerekenler ............................................................................... 4

1.3. Uygulama Soruları .................................................................................................................... 4

1.4. Değerlendirme .......................................................................................................................... 5

Uygulama 2: Yapılar ...................................................................................................... 6

2.1. Amaç ve Kapsam ....................................................................................................................... 6

2.2. Uygulamadan Önce Yapılması Gerekenler ............................................................................... 6

2.3. Uygulama Soruları .................................................................................................................... 6

2.4. Değerlendirme .......................................................................................................................... 6

Uygulama 3: Linkli Liste Yapıları ve İşlemleri .................................................................. 7

3.1. Amaç ve Kapsam ....................................................................................................................... 7

3.2. Uygulamadan Önce Yapılması Gerekenler ............................................................................... 7

3.3. Uygulama Soruları .................................................................................................................... 7

3.4. Değerlendirme .......................................................................................................................... 8

Uygulama 4: Linkli Liste Yapıları ve İşlemleri .................................................................. 9

4.1. Amaç ve Kapsam ....................................................................................................................... 9

4.2. Uygulamadan Önce Yapılması Gerekenler ............................................................................... 9

4.3. Uygulama Soruları .................................................................................................................... 9

4.4. Değerlendirme ........................................................................................................................ 10

Uygulama 5: Yığın Yapısı ............................................................................................... 11

5.1. Amaç ve Kapsam ..................................................................................................................... 11

5.2. Uygulamadan Önce Yapılması Gerekenler ............................................................................. 11

5.3. Uygulama Soruları .................................................................................................................. 11

5.4. Değerlendirme ........................................................................................................................ 12

Uygulama 6: Yığın Yapısı ............................................................................................... 13

6.1. Amaç ve Kapsam ..................................................................................................................... 13

6.2. Uygulamadan Önce Yapılması Gerekenler ............................................................................. 13

6.3. Uygulama Soruları .................................................................................................................. 13

6.4. Değerlendirme ........................................................................................................................ 14

Uygulama 7: Kuyruk Yapısı ........................................................................................... 15

7.1. Amaç ve Kapsam ..................................................................................................................... 15

7.2. Uygulamadan Önce Yapılması Gerekenler ............................................................................. 15

Page 3: Veri Yapıları Laboratuvarı - Karabük Üniversitesimuh.karabuk.edu.tr/bilgisayar/lab/foyler/veri_yapilari...7 Uygulama 3: Linkli Liste Yapıları ve İşlemleri 3.1. Amaç ve Kapsam

3

7.3. Uygulama Soruları .................................................................................................................. 15

7.4. Değerlendirme ........................................................................................................................ 16

Uygulama 8: Ağaç Veri Yapısı ve İkili Arama Ağaçları ..................................................... 17

8.1. Amaç ve Kapsam ..................................................................................................................... 17

8.2. Uygulamadan Önce Yapılması Gerekenler ............................................................................. 17

8.3. Uygulama Soruları .................................................................................................................. 17

8.4. Değerlendirme ........................................................................................................................ 18

Uygulama 9: AVL Ağaçlar .............................................................................................. 19

9.1. Amaç ve Kapsam ..................................................................................................................... 19

9.2. Uygulamadan Önce Yapılması Gerekenler ............................................................................. 19

9.3. Uygulama Soruları .................................................................................................................. 19

9.4. Değerlendirme ........................................................................................................................ 20

Uygulama 10: Öncelikli Kuyruklar: İkili Yığınlar ............................................................. 21

10.1. Amaç ve Kapsam................................................................................................................... 21

10.2. Uygulamadan Önce Yapılması Gerekenler ........................................................................... 21

10.3. Uygulama Soruları ................................................................................................................ 21

10.4. Değerlendirme ...................................................................................................................... 22

Uygulama 11: Hash Yapıları .......................................................................................... 23

11.1. Amaç ve Kapsam................................................................................................................... 23

11.2. Uygulamadan Önce Yapılması Gerekenler ........................................................................... 23

11.3. Uygulama Soruları ................................................................................................................ 23

11.4. Değerlendirme ...................................................................................................................... 24

Uygulama 12: Graf Veri Yapısı ....................................................................................... 25

12.1. Amaç ve Kapsam................................................................................................................... 25

12.2. Uygulamadan Önce Yapılması Gerekenler ........................................................................... 25

12.3. Uygulama Soruları ................................................................................................................ 25

12.4. Değerlendirme ...................................................................................................................... 26

Page 4: Veri Yapıları Laboratuvarı - Karabük Üniversitesimuh.karabuk.edu.tr/bilgisayar/lab/foyler/veri_yapilari...7 Uygulama 3: Linkli Liste Yapıları ve İşlemleri 3.1. Amaç ve Kapsam

4

Uygulama 1: Diziler ve İşaretçiler, Dinamik Bellek Ayırma

1.1. Amaç ve Kapsam

Bu uygulamada programlamanın temelini oluşturan tek boyutlu diziler, çok boyutlu diziler ve

işaretçiler ile ilgili uygulamalar incelenecektir. Dinamik bellek ayrılmasının nasıl yapıldığı

öğrenilecektir.

1.2. Uygulamadan Önce Yapılması Gerekenler

Uygulamaya gelmeden önce uygulanacak konular hakkında teorik bilgilerin araştırılarak okunması ve

hazır kodlamaların incelenmesi gerekmektedir.

1.3. Uygulama Soruları

a) Küçükten büyüğe doğru sıralı bir diziye, dizinin sırasını bozmayacak şekilde, verilen bir elemanı

ekleyen program kodunu yazınız.

Girilen dizi: 1 3 5 7 9 Eklenecek sayı: 4 Dizinin son hali: 1 3 4 5 7 9

Page 5: Veri Yapıları Laboratuvarı - Karabük Üniversitesimuh.karabuk.edu.tr/bilgisayar/lab/foyler/veri_yapilari...7 Uygulama 3: Linkli Liste Yapıları ve İşlemleri 3.1. Amaç ve Kapsam

5

b) Dışarıdan alacağınız boyut değerlerine göre dinamik olarak tanımlayacağınız iki matrisin

çarpımını, çarpım kurallarını sağlayan kontrolleri de içerecek şekilde gerçekleyen program kodunu

yazınız.

1.4. Değerlendirme

Page 6: Veri Yapıları Laboratuvarı - Karabük Üniversitesimuh.karabuk.edu.tr/bilgisayar/lab/foyler/veri_yapilari...7 Uygulama 3: Linkli Liste Yapıları ve İşlemleri 3.1. Amaç ve Kapsam

6

Uygulama 2: Yapılar

2.1. Amaç ve Kapsam

Bu uygulamada yapıların tanımlanması ve kullanımı incelenecektir. Yapıların paralel dizi

oluşturmamıza gerek kalmadan birden fazla değişken türüyle yeni bir değişken türü oluşturmamıza

yarayan bir tanımlama sunduğu görülecektir.

2.2. Uygulamadan Önce Yapılması Gerekenler

Uygulamaya gelmeden önce uygulanacak konular hakkında teorik bilgilerin araştırılarak okunması ve

hazır kodlamaların incelenmesi gerekmektedir.

2.3. Uygulama Soruları

Bir fabrikada çalışan işçilerin “ad, soy ad, sicil, bölüm, maaş” gibi bilgilerini içeren bir struct yapısı

oluşturunuz. Dışarıdan alacağınız işçi sayısı değerine göre gerekli değişken tanımlamalarınızı yaparak,

işçi bilgilerinin klavyeden girilerek kaydedildiği program kodunu yazınız.

2.4. Değerlendirme

Page 7: Veri Yapıları Laboratuvarı - Karabük Üniversitesimuh.karabuk.edu.tr/bilgisayar/lab/foyler/veri_yapilari...7 Uygulama 3: Linkli Liste Yapıları ve İşlemleri 3.1. Amaç ve Kapsam

7

Uygulama 3: Linkli Liste Yapıları ve İşlemleri

3.1. Amaç ve Kapsam

Bu uygulamada liste yapılarının tanımlanması, kullanılması incelenecektir. Listeler üzerinde yapılan

eleman ekleme, silme, güncelleme vb. işlemlerin gerçekleştirilmesi görülecektir.

3.2. Uygulamadan Önce Yapılması Gerekenler

Uygulamaya gelmeden önce uygulanacak konular hakkında teorik bilgilerin araştırılarak okunması ve

hazır kodlamaların incelenmesi gerekmektedir.

3 .3. Uygulama Soruları

a) N adet düğümden oluşan ve düğümler içerisinde rastgele atanmış rakamlar tutulan ‘list’ isimli bir

bağlı doğrusal liste yapısı oluşturulmuştur. Listede tutulan bu rakamların tekrar edilme sayılarını

hesaplayıp sonucu tanımlanan bir ‘sonuc’ dizisi ile geri döndüren ‘sayRakam’ isimli fonksiyonu

yazınız.

Page 8: Veri Yapıları Laboratuvarı - Karabük Üniversitesimuh.karabuk.edu.tr/bilgisayar/lab/foyler/veri_yapilari...7 Uygulama 3: Linkli Liste Yapıları ve İşlemleri 3.1. Amaç ve Kapsam

8

b) Bir bağlı dairesel listelerde listenin sonundaki düğümü kesip, listenin başına ekleyen bir fonksiyon

yazınız.

3.4. Değerlendirme

Page 9: Veri Yapıları Laboratuvarı - Karabük Üniversitesimuh.karabuk.edu.tr/bilgisayar/lab/foyler/veri_yapilari...7 Uygulama 3: Linkli Liste Yapıları ve İşlemleri 3.1. Amaç ve Kapsam

9

Uygulama 4: Linkli Liste Yapıları ve İşlemleri

4.1. Amaç ve Kapsam

Bu uygulamada listeler üzerinde yapılan eleman ekleme, silme, güncelleme vb. işlemlerin

gerçekleştirilmesi incelenecektir. Bunun yanında listeler üzerinde yapılabilecek farklı uygulamalar

görülecektir.

4.2. Uygulamadan Önce Yapılması Gerekenler

Uygulamaya gelmeden önce uygulanacak konular hakkında teorik bilgilerin araştırılarak okunması ve

hazır kodlamaların incelenmesi gerekmektedir.

4 .3. Uygulama Soruları

a) İki bağlı doğrusal bir listeyi (örneğin 13, 17, 14, 11 dizilimine sahip) tersten yerleşecek şekilde

(düğümler 11, 14, 17, 13 şeklinde dizilecek) yeniden oluşturan bir fonksiyon yazınız.

Page 10: Veri Yapıları Laboratuvarı - Karabük Üniversitesimuh.karabuk.edu.tr/bilgisayar/lab/foyler/veri_yapilari...7 Uygulama 3: Linkli Liste Yapıları ve İşlemleri 3.1. Amaç ve Kapsam

10

b) İki bağlı dairesel bir listede, fonksiyona parametre olarak aktarılan “A” listesindeki “x” verisini

içeren ikinci düğümü bularak silen (bu düğümü belleğe iade eden) bir fonksiyon yazınız.

4.4. Değerlendirme

Page 11: Veri Yapıları Laboratuvarı - Karabük Üniversitesimuh.karabuk.edu.tr/bilgisayar/lab/foyler/veri_yapilari...7 Uygulama 3: Linkli Liste Yapıları ve İşlemleri 3.1. Amaç ve Kapsam

11

Uygulama 5: Yığın Yapısı

5.1. Amaç ve Kapsam

Bu uygulamada yığın nedir, nerelerde kullanılır ve nasıl tanımlanır gibi soruların cevapları

öğrenilecektir. Bununla birlikte yığın yapısının çalışma prensibi incelenecektir. Yığına eleman ekleme,

yığından eleman çıkarma işlemleri görülecektir.

5.2. Uygulamadan Önce Yapılması Gerekenler

Uygulamaya gelmeden önce uygulanacak konular hakkında teorik bilgilerin araştırılarak okunması ve

hazır kodlamaların incelenmesi gerekmektedir.

5 .3. Uygulama Soruları

Dışarıdan verilen bir kelimeyi, kelimenin ilk elemanından son elemanına kadar yığın yapısına ekleyen

ve daha sonra yığın yapısından çıkararak ekrana yazdıran programı gerçekleyiniz.

Page 12: Veri Yapıları Laboratuvarı - Karabük Üniversitesimuh.karabuk.edu.tr/bilgisayar/lab/foyler/veri_yapilari...7 Uygulama 3: Linkli Liste Yapıları ve İşlemleri 3.1. Amaç ve Kapsam

12

5.4. Değerlendirme

Page 13: Veri Yapıları Laboratuvarı - Karabük Üniversitesimuh.karabuk.edu.tr/bilgisayar/lab/foyler/veri_yapilari...7 Uygulama 3: Linkli Liste Yapıları ve İşlemleri 3.1. Amaç ve Kapsam

13

Uygulama 6: Yığın Yapısı

6.1. Amaç ve Kapsam

Bu uygulamada yığın nedir, nerelerde kullanılır ve nasıl tanımlanır gibi soruların cevapları

öğrenilecektir. Bununla birlikte yığın yapısının çalışma prensibi incelenecektir. Yığına eleman ekleme,

yığından eleman çıkarma işlemleri görülecektir.

6.2. Uygulamadan Önce Yapılması Gerekenler

Uygulamaya gelmeden önce uygulanacak konular hakkında teorik bilgilerin araştırılarak okunması ve

hazır kodlamaların incelenmesi gerekmektedir.

6 .3. Uygulama Soruları

Dışarıdan girilen ve aşağıda verilen örmekteki gibi parantezler kullanılarak tanımlanan herhangi bir

matematiksel formülün parantez sayısının ve kullanımının doğru yapılıp yapılmadığını kontrol eden

program kodunu yazınız.

Giriş: 7 – ( ( X * ( ( X + Y ) / ( J – 3 ) ) + Y ) / ( 4 – 2.5 ) ) Sonuç : Doğru

Giriş: 7 – ( ( X * ( ( X + Y ) / ( J – 3 ) ) + Y ) / ( 4 – 2.5 ) ) ) Sonuç: Hatalı

Page 14: Veri Yapıları Laboratuvarı - Karabük Üniversitesimuh.karabuk.edu.tr/bilgisayar/lab/foyler/veri_yapilari...7 Uygulama 3: Linkli Liste Yapıları ve İşlemleri 3.1. Amaç ve Kapsam

14

6.4. Değerlendirme

Page 15: Veri Yapıları Laboratuvarı - Karabük Üniversitesimuh.karabuk.edu.tr/bilgisayar/lab/foyler/veri_yapilari...7 Uygulama 3: Linkli Liste Yapıları ve İşlemleri 3.1. Amaç ve Kapsam

15

Uygulama 7: Kuyruk Yapısı

7.1. Amaç ve Kapsam

Bu uygulamada kuyruk nedir, nerelerde kullanılır ve nasıl tanımlanır gibi soruların cevapları

öğrenilecektir. Bununla birlikte kuyruk yapısının çalışma prensibi incelenecektir. Kuyruğa eleman

ekleme, kuyruktan eleman çıkarma işlemleri görülecektir.

7.2. Uygulamadan Önce Yapılması Gerekenler

Uygulamaya gelmeden önce uygulanacak konular hakkında teorik bilgilerin araştırılarak okunması ve

hazır kodlamaların incelenmesi gerekmektedir.

7 .3. Uygulama Soruları

Dışarıdan verilen 10 elemanlı bir sayı dizisini oluşturulan kuyruk yapısına ekleyen ve daha sonra bu

kuyruktaki elemanları ekrana yazarak kuyruktan çıkaran program kodunu yazınız.

Page 16: Veri Yapıları Laboratuvarı - Karabük Üniversitesimuh.karabuk.edu.tr/bilgisayar/lab/foyler/veri_yapilari...7 Uygulama 3: Linkli Liste Yapıları ve İşlemleri 3.1. Amaç ve Kapsam

16

7.4. Değerlendirme

Page 17: Veri Yapıları Laboratuvarı - Karabük Üniversitesimuh.karabuk.edu.tr/bilgisayar/lab/foyler/veri_yapilari...7 Uygulama 3: Linkli Liste Yapıları ve İşlemleri 3.1. Amaç ve Kapsam

17

Uygulama 8: Ağaç Veri Yapısı ve İkili Arama Ağaçları

8.1. Amaç ve Kapsam

Bu uygulamada ağaç veri yapısının tasarımı ve kullanımı öğrenilecektir. En önemli ağaç yapılarından

biri olan ikili arama ağaçlarının yapısı incelenecektir. İkili ağaçların hangi uygulama alanlarında

kullanıldığı görülecektir.

8.2. Uygulamadan Önce Yapılması Gerekenler

Uygulamaya gelmeden önce uygulanacak konular hakkında teorik bilgilerin araştırılarak okunması ve

hazır kodlamaların incelenmesi gerekmektedir.

8.3. Uygulama Soruları

a) “50, 28, 46, 80, 47, 96, 14, 10, 68, 20, 34, 71” değerlerine sahip düğümlerini oluşturacağınız ikili

ağaç yapısına yerleştiren program kodunu yazınız.

Page 18: Veri Yapıları Laboratuvarı - Karabük Üniversitesimuh.karabuk.edu.tr/bilgisayar/lab/foyler/veri_yapilari...7 Uygulama 3: Linkli Liste Yapıları ve İşlemleri 3.1. Amaç ve Kapsam

18

b) Yazacağınız bir fonksiyonla, a şıkkında verilen ağaç yapısı üzerinde dışarıdan girilen “x” sayısının

bulunup bulunmadığını tespit eden, bulunduğu takdirde adresini, aksi takdirde “null” değerini

döndüren fonksiyonun program kodunu yazınız.

8.4. Değerlendirme

Page 19: Veri Yapıları Laboratuvarı - Karabük Üniversitesimuh.karabuk.edu.tr/bilgisayar/lab/foyler/veri_yapilari...7 Uygulama 3: Linkli Liste Yapıları ve İşlemleri 3.1. Amaç ve Kapsam

19

Uygulama 9: AVL Ağaçlar

9.1. Amaç ve Kapsam

Bu uygulamada AVL ağaç veri yapısının kullanımı ve tanımlanması incelenecektir. Bununla birlikte

ikili ağaç yapısından ne gibi farklılıklar gösterdiği görülecektir.

9.2. Uygulamadan Önce Yapılması Gerekenler

Uygulamaya gelmeden önce uygulanacak konular hakkında teorik bilgilerin araştırılarak okunması ve

hazır kodlamaların incelenmesi gerekmektedir.

9 .3. Uygulama Soruları

“60, 35, 20, 15, 17, 13, 40, 30, 18, 25” elamanlarını oluşturacağınız AVL tree yapısına yerleştiren

program kodunu yazınız.

Page 20: Veri Yapıları Laboratuvarı - Karabük Üniversitesimuh.karabuk.edu.tr/bilgisayar/lab/foyler/veri_yapilari...7 Uygulama 3: Linkli Liste Yapıları ve İşlemleri 3.1. Amaç ve Kapsam

20

9.4. Değerlendirme

Page 21: Veri Yapıları Laboratuvarı - Karabük Üniversitesimuh.karabuk.edu.tr/bilgisayar/lab/foyler/veri_yapilari...7 Uygulama 3: Linkli Liste Yapıları ve İşlemleri 3.1. Amaç ve Kapsam

21

Uygulama 10: Öncelikli Kuyruklar: İkili Yığınlar

10.1. Amaç ve Kapsam

Bu uygulamada ikili yığınlar veri yapısının kullanımı öğrenilecektir. İkili yığınların tasarımı ve

üzerinde gerçekleştirilen işlemler incelenecektir.

10.2. Uygulamadan Önce Yapılması Gerekenler

Uygulamaya gelmeden önce uygulanacak konular hakkında teorik bilgilerin araştırılarak okunması ve

hazır kodlamaların incelenmesi gerekmektedir.

10 .3. Uygulama Soruları

İkili yığınlar ile ilgili derste verilen kodlamaları gerçekleyiniz.

Page 22: Veri Yapıları Laboratuvarı - Karabük Üniversitesimuh.karabuk.edu.tr/bilgisayar/lab/foyler/veri_yapilari...7 Uygulama 3: Linkli Liste Yapıları ve İşlemleri 3.1. Amaç ve Kapsam

22

10.4. Değerlendirme

Page 23: Veri Yapıları Laboratuvarı - Karabük Üniversitesimuh.karabuk.edu.tr/bilgisayar/lab/foyler/veri_yapilari...7 Uygulama 3: Linkli Liste Yapıları ve İşlemleri 3.1. Amaç ve Kapsam

23

Uygulama 11: Hash Yapıları

11.1. Amaç ve Kapsam

Bu uygulamada hash yapılarının kullanımı öğrenilecektir. Hash yapılarının tasarımı ve üzerinde

gerçekleştirilen işlemler incelenecektir.

11.2. Uygulamadan Önce Yapılması Gerekenler

Uygulamaya gelmeden önce uygulanacak konular hakkında teorik bilgilerin araştırılarak okunması ve

hazır kodlamaların incelenmesi gerekmektedir.

11.3. Uygulama Soruları

Hash yapıları ile ilgili derste verilen kodlamaları gerçekleyiniz.

Page 24: Veri Yapıları Laboratuvarı - Karabük Üniversitesimuh.karabuk.edu.tr/bilgisayar/lab/foyler/veri_yapilari...7 Uygulama 3: Linkli Liste Yapıları ve İşlemleri 3.1. Amaç ve Kapsam

24

11.4. Değerlendirme

Page 25: Veri Yapıları Laboratuvarı - Karabük Üniversitesimuh.karabuk.edu.tr/bilgisayar/lab/foyler/veri_yapilari...7 Uygulama 3: Linkli Liste Yapıları ve İşlemleri 3.1. Amaç ve Kapsam

25

Uygulama 12: Graf Veri Yapısı

12.1. Amaç ve Kapsam

Bu uygulamada graf veri yapısının tanımlanması, tasarımı ve kodlaması öğrenilecektir. Graf yapısının

hangi durumlarda faydalı olacağı görülecektir. Graf yapısında verilerin nasıl tutulduğu ve veriler

üzerinde hangi işlemlerin yapılacağı incelenecektir.

12.2. Uygulamadan Önce Yapılması Gerekenler

Uygulamaya gelmeden önce uygulanacak konular hakkında teorik bilgilerin araştırılarak okunması ve

hazır kodlamaların incelenmesi gerekmektedir.

12 .3. Uygulama Soruları

Graf yapısı için gerekli olan veri tanımlamalarını yaparak n tane düğümü bulunan bir graftaki toplam

komşu düğümlerin sayısını döndüren program kodunu yazınız.

Page 26: Veri Yapıları Laboratuvarı - Karabük Üniversitesimuh.karabuk.edu.tr/bilgisayar/lab/foyler/veri_yapilari...7 Uygulama 3: Linkli Liste Yapıları ve İşlemleri 3.1. Amaç ve Kapsam

26

12.4. Değerlendirme