Karadeniz Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü
Öğr.Gör. Ömer ÇAKIR
BIL 205 Veri Yapıları
Final Sınavı, 06.01.2014, 15:00, D-2, D-9 Süre : 90 Dakika
CEVAPLAR
void right(int i, int p, int n, int k) {
cout << i << endl;
if(n == k) return;
else right(i+p, p, n+1, k);
}
void down(int i, int p, int n, int k) {
if(n == k) cout << i << endl;
else right(i, p, 1, k);
if(i == 1) return;
else down(i/2, p/2, 1, k*2);
}
void main() {
down(8, 16, 1, 1);
}
Çıktı
8 4 12
2 6 10 14 1 3 5 7 9 11 13 15
1. Yukarıdaki programın çıktısı nedir? (25P)
7 6
6
7 5
5
7 6
4 4
5 6
7 3
3
4 6
7 5 2 2
4 3
7 5 6 1
1
4 2
7 5 6 3
7 6 5 4 3 2 1
2. Yukarıdaki verileri Heap’e ekleyiniz. (25P)
3
2 4
2 3
4
3 5
2 5
4 6
3 2
6
5 7
4 3 2
7 6 5 4 3 2 1
7 6 5 4 2
1 3
7 6 5 4 1
2 3 7
6 4 1
2 3 5
7 6
2 1
4 5 3 6
2 1
4 5 3
7 6
2 1
4 5 3
7
2 3 4 5 6 7 1
3. Yukarıdaki verileri Splay Ağacı’na ekleyiniz. (25P)
1 2 3
3 4 5 2
1
5 6 7 2 4
1 3
7 8 2 4 6
1 3 5
4
2 6
1 3 5 7 8 9
1 2 3 4 5 6 7 8 9
4. Yukarıdaki verileri 2-3-4 Ağacı’na ekleyiniz. (25P)