Professional Documents
Culture Documents
Seminar 4 - Kerkimi
Seminar 4 - Kerkimi
2. Në një PBK veprimet e kërkimit, shtimit dhe fshirjes veprojnë zakonisht në kohë O(d).
Çfarë përfaqëson d në këtë rast?
a. Numrin total të nyjeve në pemë
b. Thellësinë e kësaj nyje në pemë
c. Numrin e ndarjeve në çdo nivel
d. Numrin e nyjeve gjethe
3. Shkruani një funksion rekursiv BSTsmallcount i cili duke pasur të dhënë një PBK dhe
një vlerë key, kthen numrin e nyjeve që kanë vlerë më të vogël se key. Funksioni duhet
të vizitoj sa më pak nyje të jenë të nevojshme.
4. Ndërtoni një metodë që kontrollon nëse një pemë binare është një pemë binare kërkimi
apo jo.
5. Në momentin që duam të fshijmë një nyje nga një pemë binare kërkimi mund të
zgjedhim si metodë atë që cilësohet si ‘lazy-deletion’. Kjo nënkupton që nyjet që
fshihen thjesht etiketohen sit ë fshira, por qëndrojnë në pemë. Cilat mendoni se janë
avantazhet dhe disavantazhet e kësaj metode?
Implementoni ndryshimet e duhura ne klasen Node:
- Shtimin e variablit etiketë fshirë/jo_fshirë
- Shtimin e dy variablave numri_total (numri i elementeve) dhe numri_fshire (numri
i elementeve te fshire)
- Arsyetoni si do të ndryshonin metodat e tjera të lidhura me PBK në këtë mënyrë
implementimi.
6. Supozoni se vlerat e ruajtura në një PBK janë midis 1 dhe 10, dhe ne po kërkojmë për
vlerën 5. Cilat nga sekuencat e mëposhtme nuk mund të ketë ndodhur?
a. 10, 9, 8, 7, 6, 5
b. 4, 10, 8, 7, 5, 3
c. 1, 10, 2, 9, 3, 8, 4, 7, 6, 5
d. 2, 7, 3, 8, 4, 5
e. 1, 2, 10, 4, 8, 5
7. Një tip tjetër algoritmi kërkimi është algoritmi ‘jump search’. Ky algoritëm në mënyrë
të ngjashme me ‘binary search’ vepron mbi bashkësitë e rradhitura të të dhënave. Idea
bazë është të kontrollohen më pak elementë (sesa në rastin e kërkimit linear) duke
kërcyer me një numër të caktuar hapash. Në momentin që gjendet një element më i
madh se elementi që po kërkojmë atëherë zbatohet kërkimi linear në intervalin e fundit
të kontrolluar.
8. Cila është lartësia maksimale e një peme AVL me 7 nyje? Supozoni se lartësia e një
peme me një nyje të vetme është 0.
a. 2
b. 3
c. 4
d. 5
9. Duke u bazuar në kompleksitetin e shtimit, fshirjes dhe kërkimit në një pemë AVL
cila nga shprehjet e mëposhtme është e vërtetë:
a. Kosto e kërkimit në një pemë AVL është O(logn) ndërsa ajo në një pemë binare
kërkimi është O(n)
b. Kosto e kërkimit në një pemë AVL është O(logn) ndërsa ajo në një pemë binare
komplete është O(nlogn)
c. Kosto e kërkimit në një pemë binare kërkimi është O(logn) ndërsa ajo në një
pemë AVL është O(n)
d. Kosto e kërkimit në një pemë AVL është O(nlogn) ndërsa ajo në një pemë binare
kërkimi është O(n)
10. Cila është koha me e keqe e ekzekutimit për të kërkuar një element në një pemë binare
të balancuar me n*2n elementë:
a. O(nlogn)
b. O(n*2n)
c. O(n)
d. O(logn)
11. Konsideroni pemën e mëposhtme AVL.
Cila nga figurat e mëposhtme paraqet pemën AVL të modifikuar pas shtimit të 70?
a.
b.
c.
d. Asnjëra
12. Jepet një pemë binare kërkimi. Gjeni pasuesin në rradhitjen inorder (ndërrendore) të një
vlere key. Nëse kjo vlerë key nuk ndodhet në PBK atëherë ktheni si vlerë nyjen me
vlerë pas tij që gjendet në PBK.
Shembull:
Pasuesi në inorder i vlerës 8 do të ishte 10.
Pasuesi në inorder i vlerës 12 do të ishte 15.
Pasuesi në inorder i vlerës 15 do të ishte 16.
BINARY SEARCH TREES
class Node1 {
int value;
Node1 left;
Node1 right;
Node1(int value) {
this.value = value;
right = null;
left = null;
}
}
return current;
}
if (value == current.value) {
//Kontrollon nese nyja qe do te fshijme ka zero femije
if (current.left == null && current.right == null) {
return null;
}
}
else if (value < current.value)
{
current.left = delete(current.left, value);
}
else
current.right = delete(current.right, value);
return current;
}
public void deleteNode(int value) {
root = delete(root, value);
}
/*
6
/ \
4 8
/\ /\
3 5 7 9
*/