• Sonuç bulunamadı

Karadeniz Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü Öğr.Gör. Ömer ÇAKIR BIL 205 Veri Yapıları Final Sınavı, 10.01.2013, 10:00, D-2, D-9 Süre : 100 Dakika

N/A
N/A
Protected

Academic year: 2021

Share "Karadeniz Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü Öğr.Gör. Ömer ÇAKIR BIL 205 Veri Yapıları Final Sınavı, 10.01.2013, 10:00, D-2, D-9 Süre : 100 Dakika"

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 205 Veri Yapıları

Final Sınavı, 10.01.2013, 10:00, D-2, D-9 Süre : 100 Dakika

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

Sınavda Uyulması Gereken Kurallar İMZA : ………...

DEĞERLENDİRME

[

...

]

...

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

2. Sınavın başında sorular kısaca açıklanacaktır. Öğrencilerin soruları cevaplandıktan sonra sınav boyunca soru sormak yasaktır.

3. Soru kağıdına numaranızı ve isminizi yazıp imzalamayı unutmayınız.

void print1(DoublyNode* node) {

cout << node->elem << endl;

if (node->next == trailer) return;

else print1(node->next);

}

void print2(DoublyNode* node) {

if (node == trailer) return;

else print2(node->next);

cout << node->elem << endl;

}

void main() {

DoublyLinkedList list;

list.insertOrdered("Paul", 720); // küçükten list.insertOrdered("Rose", 590); // büyüğe list.insertOrdered("Anna", 660); // sıralı ekle

list.print1(list.header->next); //(1) list.print2(list.header->next); //(2) list.print3(list.trailer->prev); //(3) list.print4(list.trailer->prev); //(4) }

1.

a) print1() ve print2() fonksiyonları main() fonksiyonda header->next ile çağrıldıklarında çıktıları ne olur? (10P)

print1() Print2()

b) main() fonksiyonda trailer->prev ile çağrıldıklarında print1() ile aynı çıktıyı verecek print3() fonksiyonunu;

print2() ile aynı çıktıyı verecek print4() fonksiyonunu yazınız. İpucu  Cevaplar 3 ‘er satır.

void print3(DoublyNode* node) // print1() {

//5P //5P //5P }

void print4(DoublyNode* node) // print2() {

//5P //5P //5P }

void removeOrdered(const string& e, const int& i) {

DoublyNode* current = header->next;

while (current != trailer) {

if((current->elem == e) && (current->score == i)) {

...;

...;

delete current;

return;

}

current = current->next;

}

cout << e << " is not found" << endl;

}

2.

Çift yönlü bağlı listeden eleman silen removeOrdered() adlı fonksiyondaki boş satırlara gerekli kodları yazınız. (10P)

(2)

6 5 4 3 2 1 7

3.

Yukarıdaki verileri splay ağacına yerleştiriniz? (20P)

8 4

2 6

3 5 7

12

10 14

9 11 13 15 1

24 20

18 22

19 21 23

28

26 30

25 27 29 31 17

16

4 2

1 3

6

5 7

12 16

10 14

11 13 15 9

20 18

17 19

22

21 23

28

26 30

25 27 29 31

4.

İkili ağaçtan 8 ve 24’ü yukarıdaki gibi silmek üzere aşağıdaki kodu tamamlayınız. (20P)

if( p->left != NULL && p->right != NULL) {

if(parent->left == p) {

parent->... = p->...;

p->... = parent;

temp = p->...;

while(temp->...!= NULL) temp=temp->...;

temp->... = p->...;

temp->... = temp;

} else {

parent->... = p->...;

p->... = parent;

temp = p->...;

while(temp->...!= NULL) temp=temp->...;

temp->... = p->...;

temp->... = temp;

}

delete p;

}

NOT  İkili ağaçtan düğüm silme yöntemi güncellenmiştir.

4. sorudaki yöntem artık derste anlatılmamaktadır.

5.

Synonym Chaining yöntemini avantajını belirterek açıklayınız.

(10P)

Referanslar

Benzer Belgeler

ile temsil edilen yerlere ait kodlar sırasıyla aşağıdakilerden

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ırlara

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ırlara

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

Yukarıda dictionary.txt’de verilen kelimeleri Hash() fonksiyonunu ve çakışma çözümleme yöntemi olarak linear probing’i kullanarak relative.txt’ye yazınız.. Ayrıca

Yukarıda dictionary.txt’de verilen kelimeleri Hash() fonksiyonunu ve çakışma çözümleme yöntemi olarak linear probing’i kullanarak relative.txt’ye yazınız.. Ayrıca

Yukarıda dictionary.txt’de verilen kelimeleri Hash() fonksiyonunu ve çakışma çözümleme yöntemi olarak linear probing’i kullanarak relative.txt’ye yazınız.. Ayrıca

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