You are on page 1of 15

KOLEGJI AAB

Fakulteti i Shkencave Kompjuterike


Algoritmet dhe strukturat e të dhënave
Java 4 - Binary Search Tree

E-mail:
edon.bublaku@universitetiaab.com MSc. Edon Bublaku

Prishtinë, 2020 1
Binary Search Tree (BST)
Binary Tree : Një strukturë e të dhënave në të cilën kemi nyje që
përmbajnë të dhëna dhe dy referenca në nyjet e tjera, një në të
majtë dhe një në të djathtë.
Pema binare përbëhet nga nyjet (nodes):
Nyjet nuk janë gjë tjetër veçse objekte të një klase dhe secila nyje
ka të dhëna dhe një lidhje me nyjen e majtë dhe nyjen e djathtë.
Zakonisht ne e quajmë nyjen fillestare të një peme si rrënjë (root).
Binary Search Tree
(BST)
Binary Search Tree (BST)
Nyja e majtë dhe e djathtë e një nyje Leaf tregon NULL kështu që ju do të dini që keni arritur
deri në fund të pemës.
Binary Search Tree
Nyjet më të vogla se rrënja shkojnë në të majtë të rrënjës dhe nyjet më të
mëdha se rrënja shkojnë në të djathtë të rrënjës.
Metoda tek BST
Insert(int n) - Shtoni një nyje në pemën e dhënë me vlerën n.
Find(int n) : Gjeni një nyje në pemën e dhënë me vlerën n.
Delete (int n): Fshini një nyje në pemën e dhënë me vlerën n.
Display(): Shtyp gjithë pemën.
Shembull: Kërkimi i elementit
Insertimi i elementit
Fshirja në BST
Tek fshirja këtu kemi të bëjmë me 3 raste:
1. Nyja që duhet të fshihet është një leaf node (Pa fëmijë).
2. Nyja që duhet të fshihet ka vetëm një fëmijë.
3. Nyja që duhet të fshihet ka dy fëmijë.
Nyja që duhet të fshihet është një leaf node (Pa fëmijë).
Është një rast shumë i thjeshtë, nëse një nyje që
duhet të fshihet nuk ka fëmijë, atëherë thjesht
përshkojm në atë nyje.
Mbani shënim nyjen e prindërve dhe anën në të
cilën nyja ekziston (majtas ose djathtas) dhe
vendosni:
parent.left = null ose parent.right = null;
Nyja që duhet të fshihet ka vetëm një fëmijë.

1) Nëse një nyje që duhet të fshihet (deleteNode) ka


vetëm një fëmijë, atëherë thjesht përshkoni në atë
nyje, mbani rrugen e nyjës prind dhe anën në të cilën
ekziston nyja (majtas ose djathtas).
2) Kontrolloni se cili fëmijë anësor është null (pasi ka
vetëm një fëmijë).
3) Merrni tërë nën-pemën (sub tree) nga ana e majtë
dhe shtojeni atë tek prindi dhe ana në të cilën ekziston
deleteNode .
Nyja që duhet të fshihet ka dy fëmijë.

Ju thjesht nuk mund ta zëvendësoni DeleteNode me ndonjë prej fëmijëve të tij, Pse?
Le të provojmë një shembull.

Zgjidhja: Për këtë është të gjeni pasardhësin (Successor):


Successor

Successor (Pasardhësi) është nyja e cila do të


zëvendësojë nyjen e fshirë.
Tani shtrohet pyetja se si ta gjeni dhe ku ta gjeni?
Pasardhësi është nyja më e vogël në right sub
tree të nyjës që duhet të fshihet.
Display(
)
Display() : Për të ditur se si po shfaqim nyjet në renditje.
Referencat
 Robert Sedgewick And Kevin Wayne - Princeton University - Algorithms FOURTH
EDITION
 Ivana Ognjanoviq, Ramo Shendel - Algoritmet Dhe Programimi
 Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser - Data Structures
and Algorithms in Java, 6th Edition
 Clifford A. Shaffer - Data Structures and Algorithm Analysis in Java
https://algorithms.tutorialhorizon.com/binary-search-tree-complete-implementatio
n/

You might also like