• Sonuç bulunamadı

Karadeniz Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü

N/A
N/A
Protected

Academic year: 2021

Share "Karadeniz Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü "

Copied!
2
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

Karadeniz Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü

Öğr.Gör. Ömer ÇAKIR

BIL 2001 Veri Yapıları Arasınav, 12.11.2019, 15:00

Süre : 90 Dakika

NUMARA : ……… AD SOYAD : ………...

İMZA : ………...

DEĞERLENDİRME

[...] ...

Öğrenciler, Mühendislik Fakültesi Sınav Uygulama Yönergesi‘ndeki kurallara uymalıdırlar.

Sınav Soruları Bölüm Program Çıktıları’ndan 1,4,12 ile ilişkilidir.

void traverse

(TreeNode* v) {

if (v->left != NULL)

{

traverse

(v->left);

cout << v->elem << " ";

}

if (v->right != NULL)

{

traverse

(v->right);

} }

1. main()

’de aşağıdaki ağacın

root

u ile çağrıldığı varsayılan traverse

()

fonksiyonunun çıktısı nedir? (25P)

8 4

2 6

3 5 7

12

10 14

9 11 13 15

1

1 2 3 4 5 6 7 8

2.

Yukarıdaki verilerin ikili ağaca eklendiği varsayılsın. Bu ağacın inorder, preorder ve postorder gezinme çıktılarından hangisi diğer ikisinden farklıdır? (25P) Yanlış cevaptan 5P kırılacaktır.

(A) inorder

(B) preorder

(C) postorder

(2)

void insertOrdered(string& e, int& i) {

DoublyNode* newNode = new DoublyNode;

newNode->elem = e;

newNode->score = i;

DoublyNode* current = header;

while (current->next != trailer) {

if (newNode->score >= current->next->score) current = current->next;

else break;

}

newNode->next = current->next;

newNode->prev = current;

... = ...;

... = ...;

}

3.

insertOrdered() fonksiyonundaki ... satırları için aşağıda verilen kodlardan hangisi listeye hatalı ekleme yapar? (25P) Yanlış cevaptan 5P kırılacaktır.

(A) newNode->prev->next = newNode;

newNode->next->prev = newNode;

(B) newNode->next->prev = newNode;

newNode->prev->next = newNode;

(C) current->next->prev = newNode;

current->next = newNode;

(D) current->next->prev = newNode;

newNode->prev->next = newNode;

(E) newNode->prev->next = newNode;

current->next->prev = newNode;

SinglyLinkedList* mergeLists(SinglyLinkedList*

list2) {

SinglyLinkedList* mergedList =

new SinglyLinkedList();

SinglyNode* plist1 = this->head;

SinglyNode* plist2 = list2->head;

while ((plist1 != NULL) || (plist2 != NULL)) {

if (plist1 == NULL) {

mergedList->addBack(plist2->elem, plist2->score);

plist2 = plist2->next; continue;

}

if (plist2 == NULL) {

mergedList->addBack(plist1->elem, plist1->score);

plist1 = plist1->next; continue;

}

if (plist1->score <= plist2->score) {

...

...

} else {

...

...

} }

return mergedList;

}

4.

Yukarıdaki mergeLists() fonksiyonunu tamamlayınız.

(25P)

Referanslar

Benzer Belgeler

Computers and Structures, SCI Journal, October 2017 Advances in Engineering Software, SCI Journal, July 2017 Engineering Optimization, Journal Indexed in SSCI, May 2017. Structural

Madde 9 - İstanbul Medeniyet Üniversitesi Mühendislik ve Doğa Bilimleri Fakültesi Bilgisayar Mühendisliğinde eğitim gören her öğrenci, pratik çalışma deneyimi kazanmak

Düğümleri dairesel bağlı listeye score değerlerine göre küçükten büyüğe sıralı ekleyen insertOrdered() fonksiyonunda ... ile temsil edilen satır için aşağıda

Cep telefonlarının saate bakmak için bile olsa herhangi bir amaçla kullanılması yasaktır.. Telefon kapalı ve

Cep telefonlarının saate bakmak için bile olsa herhangi bir amaçla kullanılması yasaktır.. Telefon kapalı ve

Karadeniz Teknik Üniversitesi Bilgisayar Mühendisliği

Öğr.Gör. Cep telefonlarının saate bakmak için bile olsa herhangi bir amaçla kullanılması yasaktır. Telefon kapalı ve cepte olmalıdır. Sınavın başında sorular

Kuyruk veri yapısında veri ekleme (enqueue) kuyruk sonuna yapıldığından dairesel bağlı listenin add fonksiyonunun peşine, cursor yeni eklenene son eleman olarak işaret etsin