Algoritma Dan Struktur Data - Pert-12 B-Tree & BST
Algoritma Dan Struktur Data - Pert-12 B-Tree & BST
S T
X Y U V
Z W
Representasi ekspresi arithmatik
0 1 2 3 4 5 6 7 8 9 10 11
H
D K
B F J L
A C E G I
Representasi binary tree menggunakan array (asumsi root
pada index 0) :
H D K B F J L A C E G I
0 1 2 3 4 5 6 7 8 9 10 11
H D K B F J L A C E G I
0 1 2 3 4 5 6 7 8 9 10 11 12
Tiap sub tree memiliki panjang path yang sama.
Disebut juga maximum binary tree
Seluruh node sebelah kiri terisi seluruhnya. Node sebelah
kanan pada level n-1 ada yang kosong.
Posisi node dapat ditentukan berdasarkan rumus
berikut :
Asumsi root dimulai dari index 0 :
Anak kiri dari node i berada pada indeks : 2*i+1
Anak kanan dari node i berada pada indeks : 2*i+2
Asumsi root dimulai dari index 1 :
Anak kiri dari node i berada pada indeks : 2*i
Anak kanan dari node i berada pada indeks : 2*i+1
Teknik penelusuran seluruh node pada binary
tree.
Ada 4 metode :
PRE-ORDER
IN-ORDER
POST-ORDER
LEVEL-ORDER
Algoritma Pre-Order traversal :
1. Cetak data pada root
2. Secara rekursif mencetak seluruh data pada
sub pohon kiri
3. Secara rekursif mencetak seluruh data pada
sub pohon kanan
a
b c
a bc
a
b c
d e f
g h i j
a
b c
d e f
g h i j
a bdghe i c f j
/
* +
+ - e f
a b c d
/ * +a b - c d +e f
Gives prefix from of Expression!
Algoritma In-Order traversal :
1. Secara rekursif mencetak seluruh data pada
sub pohon kiri
2. Cetak data pada root
3. Secara rekursif mencetak seluruh data pada
sub pohon kanan
a
b c
ba c
a
b c
d e f
g h i j
a
b c
d e f
g h i j
gdhbe i a f j c
/
* +
+ - e f
a b c d
a +b * c - d / e + f
Gives Infix from of Expression!
Algoritma Post-Order traversal :
1. Secara rekursif mencetak seluruh data pada
sub pohon kiri
2. Secara rekursif mencetak seluruh data pada
sub pohon kanan
3. Cetak data pada root
a
b c
bc a
a
b c
d e f
g h i j
a
b c
d e f
g h i j
ghdi e bj f c a
/
* +
+ - e f
a b c d
a b +c d - * e f + /
Gives postfix from of Expression!
a
b c
d e f
g h i j
a bc de f ghi j
Binary Search Tree disebut juga Ordered Binary
Tree
Yaitu binary tree yang seluruh node-nya
terurut.
Aturan : data pada sub tree kiri lebih kecil dari
data pada sub tree kanan.
Membangun daftar vocabulary yang merupakan
bagian dari inverted index (sebuah struktur
data yang digunakan oleh banyak mesin pencari
seperti Google.com, Yahoo.com dan Ask.com)
Banyak digunakan dalam bahasa pemrograman
untuk mengelola dan membangun dynamic
sets.
20
Root = 20
10 40
6 15 30
2 8 25
Aturan MinMax :
Node yang bernilai lebih kecil dari root
diletakkan pada sub tree sebelah kiri.
Node yang bernilai lebih besar dari root
diletakkan pada sub tree sebelah kanan.
Jika ada nilai yang sama maka node tersebut di
overwrite.
Ada 3 kasus :
Node adalah leaf/daun.
10 40
6 15 30
2 8 18 25 35
10 40
6 15 30
2 8 18 25 35
10 40
6 15 30
2 8 18 25 35
10 40
6 15 30
2 8 18 25 35
10 40
6 15 30
2 8 18 25 35
10 40
6 15 30
2 8 18 25 35
10 40
6 15 30
2 8 18 25 35
8 40
6 15 30
2 8 18 25 35
10 40
6 15 30
2 8 18 25 35
10 40
6 15 30
2 8 18 25 35
10 40
6 15 30
2 8 18 25 35
10 40
6 15 30
2 8 18 25 35
10 40
6 15 30
2 8 25 35
7
Operasi-operasi yang dilakukan pada binary
search tree meliputi :
1. Penambahan node
2. Penghapusan node
3. Pencarian node
Penghapusan :
Penghapusan node terkecil :
Pencarian node terkecil :