Arasınav Örnek Soruları Bahar 2018

Benzer belgeler
Arasınav Soruları Bahar 2018

YZM 2116 Veri Yapıları

Final Sınavı Soruları Bahar 2018

Final Sınavı Örnek Soruları Bahar 2018

YZM 2116 Veri Yapıları

Yığıtın en üstündeki öğeyi değer olarak alır; ama onu yığıttan almaz, yerinde bırakır.

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

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

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

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

İST 264 VERİ YAPILARI Bitirme Sınavı A Grubu

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

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

Bölüm 8. Ayrık Küme. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 16

YZM 2116 Veri Yapıları

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI

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

YMT219 VERİ YAPILARI ÖDEV-1

YZM 2116 Veri Yapıları

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

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

Java String İşlemleri

YZM 2116 Veri Yapıları

YIĞINLAR YIĞINLAR. Yığın İşlemleri Postfix, Prefix, Infix. G. Ü. Bilgisayar Mühendisliği Bölümü

Veri Yapıları. Ağaçlar

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

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

Örnek Arasınav Soruları Güz 2017

Yigin & Kuyruk {\} /\ Suhap SAHIN Onur GÖK

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

Ağaç (Tree) Veri Modeli

Bölüm 6. Karma. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 31

Week 9: Trees 1. TREE KAVRAMI 3. İKİLİ AĞAÇ DİZİLİMİ 4. İKİLİ ARAMA AĞACI 2. İKİLİ AĞAÇ VE SUNUMU > =

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

DÖNGÜLER BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA DENEY-4 FÖYÜ GİRİŞ LABORATUARI.

Veri Modelleri. Ağaç Veri Modeli. Ağaç Veri Modeli

Merge (Bireşim) Algoritmayı önce bir örnek üzerinde açıklayalım.

YZM 2116 Veri Yapıları

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

Bölüm 5. Ağaç. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 73

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

YZM 2116 Veri Yapıları

KUYRUKLAR. Doç. Dr. Aybars UĞUR

Dizi ( Array ) ve Dizgi ( String )

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

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 4. UYGULAMA

BIL222 Veri Yapıları ve Algoritmalar

YZM 2116 Veri Yapıları

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

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

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ

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

Arasınav Sınavı Soruları Güz 2017 Süre: 90 Dakika

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

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ü

Alıştırma 1: Yineleme

Dizi türündeki referanslar, dizi nesnelerine bağlanmaktadır. Dizi referansları tanımlamak bu dizinin hemen kullanılacağı anlamına gelmez...

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 9. UYGULAMA

Binary Search. (Yarılama) Bölüm Dizide Bir Öğe Arama

Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM Yapay Zekâ Dersi. Final Soruları A KİTAPÇIĞI. Güz,

Örnek 1: Programı yazın ve çalıştırın.

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

BIP116-H14-1 BTP104-H014-1

BMÜ-112 ALGORİTMA VE PROGRAMLAMA-II LABORATUARI DENEY-2 FÖYÜ

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Veri Yapıları ve Algoritmalar dönem

// hataları işaret eden referans

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

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

Ders - 7 while döngüsü

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

BİL-141 Bilgisayar Programlama I (Java)

İ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 DERS NOTLARI BÖLÜM 5 QUEUE (KUYRUK) Yard. Doç. Dr. Deniz KILINÇ

A KİTAPÇIĞI. Final Soruları. Sayfa#1(A Kitapçığı) Süre: 60 Dakika

NESNEYE DAYALI PROGRAMLAMA 9. HAFTA UYGULAMA DERSİ

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM Biçimsel Diller ve Otomata Teorisi. Final Sınavı Soruları A KİTAPÇIĞI

NESNEYE DAYALI PROGRAMLAMA 11. HAFTA UYGULAMA DERSİ

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

BİL132 Bilgisayar Programlama II

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

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta

BİL-141 Bilgisayar Programlama I (Java)

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

Merge Sort Bireşen Sıralama

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır.

CBÜ Teknoloji Fakültesi, Yazılım Mühendisliği. Nesneye Yönelik Programlama

Insertion Sort. (Sokuşturma Sıralaması)

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 6. UYGULAMA

D İ Z İ L E R A R R A Y S

Final Sınavı Örnek Soruları Güz 2018 Süre: 90 Dakika

BAĞLAÇLI LİSTELER LINKED LISTS

BAĞLAÇLI LİSTELER LINKED LISTS

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İ

Transkript:

Sayfa#1 Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM 2116 Veri Yapıları Dersi Arasınav Örnek Soruları Bahar 2018 Süre: 75 Dakika Adı ve Soyadı YANIT ANAHTARI Öğrenci Numarası Grubu İmza Tarih Not /100 Soru#1 (20 puan): Aşağıdaki kod parçalarının hesaplama karmaşıklıklarını (koşma süreleri bakımından), Big-O hesaplama kuralları doğrultusunda değerlendirerek, en kötü durum senaryoları için Big-O değerlerini belirleyiniz. Ara işlemlerin yazılması zorunlu değildir. Sözde Kod i. void deneme(int n) { for (int i = 0; i < 1000; ++i) { for (int j = 0; j < n; ++j) { for (int k = 0; k < j; ++k) System.out.println( k = + k); for (int m = 0; m < i; ++m) System.out.println( m = + m); ii. void deneme(int n, int m) { if (n < 5) return; if (n < m) deneme(n/2, m+1); else deneme(n/2, m); iii. void deneme(int n, int x, int y) { for (int i = 0; i < n; ++i){ if (x < y) { for (int j = 0; j < n * n; ++j) System.out.println( j = + j); else System.out.println( i = + i); iv. void deneme(int n) { for (int i = 0; i < n; ++i) { j = 0; while (j < n) { System.out.println( j = + j); j++; Karmaşıklık Sınıfı (Big-O) O(N 2 ) O(logN) O(N 3 ) O(N 2 )

Sayfa#2 Soru#2 (10 puan): Aşağıda a, b, c, d, e ve f şeklinde isimlendirilmiş altı adet ağaç verilmiştir: Buna göre, yukarıdaki a, b, c, d, e ve f ağaçlarını, tam ikili ağaç (full binary tree), eksiksiz ikili ağaç (complete binary tree) ve katı ikili ağaç (strict binary tree) özellikleri taşımalarına göre gruplandırıp aşağıdaki tabloyu doldurunuz. Not: Herhangi bir ağaç, birden fazla özelliği taşıyor olabilir. İkili Ağaç Özelliği Tam İkili Ağaç Eksiksiz İkili Ağaç Katı İkili Ağaç İlgili Özelliği Örnekleyen/Taşıyan Ağaçlar c, e b, c, d, e b, c, e Tam İkili Ağaç: Her bir düğümün (i)net olarak iki çocuk düğüme sahip olduğu ve (ii)yaprak düğümlerin aynı seviyede olduğu ikili ağaçtır. Her düğüm eşit şekilde sağ ve sol alt-ağaçlara sahiptir. Eksiksiz İkili Ağaç: Son seviye dışındaki tüm seviyelerin tam (full) olduğu ikili ağaç türüdür. Düğümleri sol taraftan (düğüme göre) doldurulur. Yeni bir derinliğe soldan sağa doğru ekleme başlanır. Katı İkili Ağaç: Yaprak düğümler haricindeki tüm düğümler sıfır veya iki çocuğa sahip ise katı ikili ağaç olarak adlandırılır.

Sayfa#3 Soru#3 (15 puan): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 şeklinde numaralandırılmış on düğümden oluşan bir ikili ağaç, Inorder (Ortada kök) gezinildiği takdirde, 9, 3, 1, 0, 4, 2, 7, 6, 8, 5 ve Post-order (Sonra-kök) gezinildiği takdirde, 9, 1, 4, 0, 3, 6, 7, 5, 8, 2 sıralamalarını vermektedir. Buna göre, yukarıdaki özellikleri taşıyan ikili ağacı çiziniz. Preorder: Önce kök, sonra sol alt ağaç ve ardından sağ alt ağaç Inorder: Önce sol alt ağaç, kök ve sağ alt ağaç Postorder: Önce sol alt ağaç, sağ alt ağaç ve kök

Sayfa#4 Soru#4 (20 puan): Sondan başa ya da baştan sona okunduğunda aynı içeriği veren sözcük, kalıp ya da tümceler, palindrom olarak tanımlanmaktadır. Örneğin, boşluk ve noktalama işaretlerini göz ardı ettiğimizde, Race car bir palindromdur. Benzer şekilde, A man, a plan, a canal: Panama yine bir palindromdur. Buna göre, girilen bir stringin palindrom olup olmadığını yığın(stack) kullanarak belirleyiniz. [Gerçekleştirimde, C#, Java, C vb. diller kullanılabilir. Temel yığın operasyonları kullanılarak çözüm, sözde kod ile algoritmik olarak da ifade edilebilir.] Boşluk ve noktalama işaretleri dışında kalan incelenmesi gereken karakter sayısını N olarak belirle. Girdiler içerisinden ilk N/2 karakteri yığına push operasyonu ile ekle. Eğer N değeri tek sayı ise (N ikiye tam bölünemiyorsa, ilgili karakteri) yığına dâhil etme. Sırasıyla yığından pop operasyonu ile çıkartılan her bir eleman ile girdiler arasındaki N/2 karakteri karşılaştır. Tek olması nedeniyle yığına dâhil edilmeyen karakter dışında, eğer girdi seti ile yığından kaldırılan karakterler birbirleriyle eşleşmiyorsa, ilgili ifade palindrom değildir. Aksi takdirde, ilgili ifade palindromdur. import java.util.stack; public class PalindromeTest { public static void main(string[] args) { String input = "test"; Stack<Character> stack = new Stack<Character>(); for (int i = 0; i < input.length(); i++) { stack.push(input.charat(i)); String reverseinput = ""; while (!stack.isempty()) { reverseinput += stack.pop(); if (input.equals(reverseinput)) System.out.println("Yes! that is a palindrome."); else System.out.println("No! that isn't a palindrome.");

Sayfa#5 Soru#5 (10 puan): 89, 45, 68, 90, 29, 34, 17 elemanlarını içeren bir diziyi, seçimli sıralama (Selection Sort) algoritması kullanarak sıralayınız. Seçimli Sıralama (Selection Sort) Dizinin içerisindeki en küçük eleman bulunur. 1. sıradaki elemanla yer değiştirilir. En küçük bulma işlemi dizinin ikinci elemanından başlanılarak tekrar edilir. Bulunan en küçük değer 2.sıradaki elemanla yer değiştirir. Bu işlem dizinin son elemanına kadar devam eder.

Sayfa#6 Soru#6 (25 puan): Yığın veri yapısına ilişkin temel operasyonlar şu şekildedir: push(element): Yığına eleman ekleme. pop(): Yığının üstündeki elemanın çıkarılması. size(): Yığının boyutunun döndürülmesi. Buna göre, yığın veri yapısına ilişkin yukarıda değinilen operasyonları, kuyruk veri yapısının temel operasyonlarını kullanarak gerçekleştiriniz. Her bir metot için, hesaplama karmaşıklığını belirleyiniz. [Gerçekleştirimde, C#, Java, C vb. diller kullanılabilir. Temel yığın operasyonları kullanılarak çözüm, sözde kod ile algoritmik olarak da ifade edilebilir.] -------------------------------------------------------------------------------------------------------------------------------------- push(s, x) 1) x i enque operasyonu kullanarak q1 kuyruğuna ekle. pop(s) 1) Kuyruğun son elemanı hariç geri kalan tüm elemanları q1 kuyruğundan q2 kuyruğuna enque ile ekle. 2) Deque(Q1) // Böylelikle, son eleman çıkarılmış oldu. 3) Q1 ve Q2 kuyruklarını birbirleriyle değiştir. 4) 2. Adımda çıkarılan nesneyi döndür. -------------------------------------------------------------------------------------------------------------------------------------- class stack { Queue q, temp; Stack() { q = new Queue(); temp = new Queue(); int size() { return (q.size()); void push(object o) { q.enqueue (o); Object pop() { int i, num_items; Object ret; num_items = q.size(); for (i = 0; i < num_items - 1; i++) temp.enqueue(q.dequeue()); ret = q.dequeue(); for (i = 0; i < num_items-1; i++) q.enqueue(temp.dequeue()); return ret;

Sayfa#7 Size ve push : O(1) Pop : O(n)