Anda di halaman 1dari 61

10S2102 – Algoritma Dan

Struktur Data
~ Tree dan Binary Tree~

Inte Christinawati Bu’ulolo (inte@del.ac.id)


Tujuan

Di akhir kuliah, peserta akan :


• Memahami definisi Tree dan komponen-komponennya
• Memahami definisi Binary Tree
• memahami cara kerja dan kegunaan Tree dan Binary Tree
• dapat mengimplementasikan dan menggunakan Tree dan Binary Tree

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 2


Topik
 Struktur data linier vs non-linier
 Struktur Tree
 Binary Tree
 Varian Tree
 Traversal pada Tree

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 3


Struktur data linier vs non-linier
• Struktur data linier adalah struktur data yang mengorganisasi data
secara linier dimana elemen-elemen disusun secara sekuensial,
yang berarti jika diambil salah satu elemen pada struktur data,
elemen tersebut memiliki 1 elemen pendahulu dan 0 atau 1
elemen pengikut. Array 1 dimensi, linked list, stack, dan queue
adalah struktur data linier.
• Struktur data non-linier adalah struktur data yang tidak diorganisasi
secara sekuensial. Sebuah elemen data tidak perlu bertaut pada 1
elemen saja, tetapi bisa beberapa elemen data. Array multi
dimensi, tree, graph adalah struktur data non-linier.

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 4


Struktur Tree

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 5


Nature View of a Tree

leaves

branches
root

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 6


Computer Scientist’s View
root

leaves

branches
nodes

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 7


Apakah Tree Structure itu ?
• Sebuah tree merepresentasikan hubungan bertingkat (hierarkhi)
• Contoh:
Direktori/folder pada windows atau Daftar isi buku
linux
Buku TA XYZ
My
Document

My My Struktur Bab 1 Bab 2 Studi Bab 3


Pictures Music data Pendahuluan Literatur Analisis

Array Latar Rumusan Tujuan


Linked Tree Belakang Masalah
list

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 8


Definisi pohon umum
• Pohon umum (Generic tree) merupakan kumpulan dari simpul (node) yang
terhubung/terkait dengan pointer/reference.
• Pohon berakar (rooted tree) memiliki sebuah simpul khusus yang
merupakan simpul awal yang disebut dengan root r atau akar dan nol atau
lebih sub-pohon (sub-trees) T1 , T2 ,...,Tk dimana setiap root dari sub-tree
terhubung ke r.
• Root dari setiap sub-tree merupakan anak (child) dari r dan r adalah induk
(parent) dari setiap sub-tree.
• Setiap simpul pohon umum dapat memiliki anak berapa pun.
• Simpul tanpa anak disebut dengan daun (leaf).
• Simpul-simpul (nodes) dengan induk yang sama disebut saudara kandung
(siblings).
ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 9
Definisi pohon umum
• Sebuah lintasan dari n1 ke nk merupakan urutan dari n1 , n2 , …, nk
sedemikian hingga ni adalah induk dari ni+1 untuk
1≤i<k
• Untuk sembarang node ni , kedalaman ni adalah panjang lintasan unik dari
root ke ni . Dengan demikian, kedalaman root adalah 0 (nol).
• Untuk sembarang node ni , tinggi ni adalah panjang lintasan maksimum
dari ni ke leaf . Dengan demikian, tinggi daun (leaf) adalah 0 (nol).
• Dengan definisi pada halaman sebelumnya, tinggi pohon adalah sama
dengan tinggi root.
• Tinggi pohon selalu sama dengan kedalaman leaf terdalam pada pohon. Ini
sama dengan kedalaman pohon.

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 10


Hubungan antar komponen
• Hubungan antar elemen: parent- node 1 root
child/father-son/ mother-daughter
• Nama node: nama(misalnya: node 2 3

angka/abjad) yang dipakai untuk


membedakan sebuah node dengan leaf
4 5 6
leaf
7 node
node yang lain.
• Label: nilai yang diingat oleh sebuah 8 9
leaf
10
leaf leaf
node
• Tree vs Graph Contoh graph
• Tree: setiap node kecuali root hanya
memiliki sebuah parent
• Graph: dapat memiliki lebih dari
satu parent
ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 11
Terminologi padaTree
Root (akar): node tanpa parent (A)  Height (tinggi) suatu node: maksimum
tingkat simpul dari node sampai leaf
Siblings (saudara): node-node yang memiliki terdalam.
parent yang sama (B,C,D), (I,J,K),(E,F),(G,H).  Degree dari suatu tree: jumlah maksimum
Internal node: node dengan minimal 1 child node yang dimiliki (subtree)-nya.
(A, B, C, F)  Degree dari suatu node: jumlah child
External node (leaf ): node tanpa children (anak) dari node tersebut.
(E, I, J, K, G, H, D)  Subtree: pohon yang terdiri dari satu node
Ancestors dari suatu node: node yang dan descendant-nya.
A
ditemukan, ketika menyusuri tree ke atas
dari suatu node.
Descendant dari suatu node: node yang
B C D
ditemukan ketika menyusuri tree ke bawah
dari suatu node.
Depth (tingkat/level) dari suatu node:
jumlah ancestor suatu node. E F G H

Height (tinggi) dari tree: maksimum tingkat


simpul yang ada pada pohon.
I J K
subtree
ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 12
ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 13
Kedalaman/Level dan Ketinggian
Kedalaman Ketinggian
1 0 3

2 3 1 2

4 5 6 7 2 1

8 9 10 3 0

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 14


Latihan
Property Value
A
Number of nodes 9

Height 4
B C
Root Node A
Leaves 5
D E F Interior/internal nodes 4
Ancestors of H G,E,B,A
Descendants of B B,E,F,G,H,I
G Siblings of E D,F
Right subtree of A C
H I Degree of this tree 8

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 15


Definisi TREE
Sebuah tree didefinisikan sebagai struktur yang dibentuk secara
recursif oleh kedua rule berikut:
1. Sebuah node adalah sebuah tree. Node satu-satunya pada tree ini
berfungsi sebagai root maupun leaf.
2. Dari k buah tree T1~Tk , dan masing-masing memiliki root n1~
nk.Jika node n adalah parent dari node n1~nk, akan diperoleh
sebuah tree baru T yang memiliki root n. Dalam kondisi ini, tree T1
~Tkmenjadi sub-tree dari tree T. Root dari sub-tree n1~nkadalah
child dari node n .

Tree
root
1
leaf node

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 16


Definisi TREE
Sebuah tree didefinisikan sebagai struktur yang dibentuk secara
recursif oleh kedua rule berikut:
1. Sebuah node adalah sebuah tree. Node satu-satunya pada tree ini
berfungsi sebagai root maupun leaf.
2. Dari k buah tree T1~Tk , dan masing-masing memiliki root n1~
nk.Jika node n adalah parent dari node n1~nk, akan diperoleh
sebuah tree baru T yang memiliki root n. Dalam kondisi ini, tree T1
~Tkmenjadi sub-tree dari tree T. Root dari sub-tree n1~nkadalah
child dari node n .

T1 1 n1 T2 T3 T4
1 n2 1 n3 1 n4

2 3 4 2 3 2

5 6 3
ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 17
Definisi TREE

2. Dari k buah tree T1~Tk , dan masing-masing memiliki root n1~nk. Jika
node n adalah parent dari node n1~nk, akan diperoleh sebuah tree
baru T yang memiliki root n. Dalam kondisi ini, tree T1~Tkmenjadi
sub-tree dari tree T. Root dari sub-tree n1~nkadalah child dari node
n. T 1 n

Tree dilihat
secara rekursif. T2 T3 T4
T1 2 n1 3 n2 4 n3 5 n4
Setiap subtree
adalah juga 6 7 8 9 10 11
sebuah tree.

12 13 14

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 18


Varian tree
• Ada beberapa varian tree generik yang dibedakan oleh struktur
pengorganisasian data pada tree.
• Beberapa varian tersebut adalah
– Binary tree: tree dengan jumlah anak sebanyak 2 untuk setiap node.
– Binary search tree: binary tree dengan properti tambahan yakni, untuk
setiap node x pada, tree nilai kunci pada sub-tree sebelah kiri x selalu lebih
kecil dari nilai kunci x, sedangkan nilai kunci pada sub-tree sebelah kanan x
selalu lebih besar dari nilai kunci x.
– AVL tree: Binary search tree yang seimbang (self-balancing binary search
tree), yaitu untuk setiap node dalam tree, ketinggian subtree di anak kiri
dan subtree di anak kanan hanya berbeda maksimum 1.
ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 19
Varian tree
• Red-black tree: binary search tree yang seimbang dimana
setiap node diberi warna merah (red) atau hitam sesuai
dengan aturan red black tree.
• B-tree: suatu struktur tree yang menyimpan data secara
terurut dimana anak (child) dari suatu node bisa lebih dari 2.
Jadi b-tree bukanlah pohon biner. Properti yang penting adalah
tree harus seimbang (balanced). B-tree lazim dipakai untuk
menyimpan indeks tabel pada basis data

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 20


Binary Tree

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 21


Definisi

Definisi Binary Tree:


1. Tree di mana semua internal nodes memiliki maksimum degree 2
2. Sebuah tree yang kosong juga merupakan sebuah binary tree
3. Binary tree harus memenuhi salah satu syarat berikut:
 Tidak memiliki anak
 Memiliki subtree di sebelah kiri (left subtree/pohon condong kiri)
 Memiliki subtree di sebelah kanan (right subtree/pohon condong kanan)
 Memiliki baik left subtree maupun right subtree
HATI-HATI DALAM MENGGAMBAR BINARY TREE

a a a a a

b b b c b

Subtree (child) yang dimiliki


bukan
ICB/Alsrtudat/Tree, Binary Tree dan Binary kiri maupun kanan
Search Tree 22
Contoh Binary Tree
• Representasi ekspresi arithmatik
+

x x

+ 5 4 +

7 2
x +

3 + 2 8

1 +

4 6

( ( ( ( 3 x ( 1 + ( 4 + 6 ) ) ) + ( 2 + 8 ) ) x 5 ) + ( 4 x (7 + 2 ) ) )
ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 23
Ketentuan mengenai Binary Tree
• Jika dibatas bawah tiap node hanya memiliki dua node anak
(children),
maka:
– (# external nodes ) = (# internal nodes) + 1
– (# nodes at level i) <= 2i
– (# external nodes) <=2 (height)
– (height) >= log2 (# external nodes)
– (height) >= log2 (# nodes) – 1
– (height) <=(# internal nodes) = ((# nodes) - 1)/2

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 24


Binary Tree Dalam Java
• Tree adalah sekumpulan nodes yang • ADT tree menyimpan referensi dari root
dideklarasikan secara rekursif. node, yang merupakan awal untuk
public class BinaryNode<A> mengakses tree.
{
public class BinaryTree<A>
A element;
{
BinaryNode<A> left;
private BinaryNode<A> root;
BinaryNode<A> right;
public BinaryTree( )
}
{
Pelajari kode program lengkap BinaryNode dari buku Mark root = null;
Allen Weiss, Data Structures and Problem Solving Using }
Java (4rd edition), Addison Wesley, 2010, halaman 661. public BinaryTree(A rootItem )
{
root = new BinaryNode<A> (rootItem, null, null);
element left right Satu node }
}
b
b
Pelajari kode program lengkap BinaryNode dari
a c buku Mark Allen Weiss, Data Structures and
Problem Solving Using Java (4rd edition), Addison
a Wesley,
ICB/Alsrtudat/Tree, BinarycTree dan 2010,
Binary Search Tree halaman 661. 25
Berfikir Rekursif
• Menghitung tinggi tree dapat menjadi program yang
rumit bila tidak menerapkan rekursif.
• Tinggi sebuah tree adalah: maksimum tinggi dari subtree
ditambahkan satu (tinggi dari root).
• HT = max (HL+1, HR+1)

Sumber: Mark Allen Weiss, Data Structures and Problem Solving Using Java (4rd edition),
Addison Wesley, 2010, page 666
ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 26
Menghitung tinggi tree
• Base case (empty tree).
– Catatan: Tree dengan hanya satu node memiliki tinggi = 0.
• Terapkan perhitungan/analisis sebelumnya dalam bentuk
program.
public static int height (BinaryNode<A> t)
{
if (t == null) {
return -1;
} else {
return max(height (t.left) + 1, height (t.right) + 1);
}
}
ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 27
Algoritma Pada Binary Tree
• Struktur data tree di definisikan / dilihat secara rekursif:
– sebuah binary tree terdiri dari sebuah node dengan dua buah sub tree (kiri
dan kanan) yang masing-masing adalah tree juga.
• Algoritma untuk Binary Tree akan lebih mudah dinyatakan secara
rekursif.
• Binary tree memiliki dua kasus rekursif
– Base case: empty leaf– external node.
– Recursive case: Sebuah internal node (root) and dua binary trees (subtree
kiri dan subtree kanan)
• Traversing Tree:
“Menjalani/mengunjungi” tree.
ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 28
Tree Traversal

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 29


Definisi Tree Traversal
 Teknik menyusuri tiap node dalam sebuah tree secara sistematis, sehingga semua
node dapat dan hanya satu kali saja dikunjungi
 Ada tiga cara traversal:
 Pre-order
 Post-order
 In-order
 Untuk tree yang kosong, traversal tidak perlu dilakukan

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 30


Pre-order
A

1. Visit the root


B H
2. Traverse the left subtree
3. Traverse the right subtree C D

E F

A→B→C→D→E→G→F→H

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 31


Traversing Trees: Pre-order traversal
class BinaryNode<A> { 6 Left Right
void printPreOrder() {
System.out.println( element ); // Node
if( left != null ) 2 8
left.printPreOrder( ); // Left
if( right != null )
right.printPreOrder( ); // Right Null Null
}
1 4
}
public class BinaryTree<A> {
public void printPreOrder() { Null Null
if( root != null ) Null
3
root.printPreOrder( );
}
} 6 2 1 4 3 8

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 32


Post-order
A

1. Traverse the left subtree


B H
2. Traverse the right subtree
3. Visit the root C D

E F

C→G→E→F→D→B→H→A

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 33


Traversing Trees: Post-order traversal
class BinaryNode<A> { 6 Left Right
void printPostOrder( )
{
if( left != null )
left.printPostOrder( ); // Left 2 8
if( right != null )
right.printPostOrder( ); // Right Null Null
System.out.println( element ); // Node
} 1 4
}
class BinaryTree<A> { Null
Null
public void printPostOrder( ) Null
{ 3
if( root != null )
root.printPostOrder( );
}
} ? ? ? ? ? ?

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 34


Inorder
A

1. Traverse the left subtree


B H
2. Visit the root
3. Traverse the right subtree C D

E F

C→B→G→E→D→F→A→H

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 35


Traversing Trees: Post-order traversal
class BinaryNode<A> { 6 Left Right
void printInOrder( )
{
if( left != null )
left.printInOrder( ); // Left 2 8
System.out.println( element ); // Node
if( right != null ) Null Null
right.printInOrder( ); // Right
} 1 4
}
class BinaryTree<A> { Null
Null
public void printInOrder( ) Null
{ 3
if( root != null )
root.printInOrder( );
}
} ? ? ? ? ? ?

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 36


Binary Search Tree

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 37


Pohon pencarian biner/Binary Search Tree (BST)
• Adalah pohon biner dengan properti tambahan yakni, untuk
setiap node x pada pohon:
– nilai kunci pada sub-tree sebelah kiri x selalu kecil dari nilai kunci x,
– sedangkan nilai kunci pada sub-tree sebelah kanan x selalu lebih
besar dari nilai kunci x.

Binary Search Tree

Bukan Binary Search Tree

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 38


Pohon pencarian biner contoh efisien dan
tidak efisien

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 39


Contoh Binary Tree

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 40


Basic Operation
• insert
• findMin and findMax
• Remove
• cetak terurut

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 41


Algoritma Insertion
• Menambah elemen X pada binary search tree:
– mulai dari root.
– Jika X lebih kecil dari root, maka X harus diletakkan pada sub-tree sebelah
kiri.
– jika X lebih besar dari root, then X harus diletakkan pada sub-tree sebelah
kanan.
• Ingat bahwa: sebuah sub tree adalah juga sebuah tree. Maka,
proses penambahan elemen pada sub tree adalah sama dengan
penambahan pada seluruh tree. (melalui root tadi)
– Apa hubungannya? permasalahan ini cocok diselesaikan secara rekursif.

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 42


Insertion
BinaryNode insert(int x, BinaryNode t) Akar Left Right
{
if (t == null) {
Null Null
t = new BinaryNode (x, null, null);
} else if (x < t.element) {
Left Right X Before
t.left = insert (x, t.left);
} else if (x > t.element) {
t.right = insert (x, t.right);
} else { Null Null
throw new DuplicateItem(“exception”); Left Right Akar
}
return t;
} Null Left Right X
After

Null Null
ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 43
Find Minimum
• Mencari node yang memiliki nilai terkecil.
• Algoritma: 6 Left Right
– ke kiri terus sampai buntu….:)
• Code: 2 8

BinaryNode findMin (BinaryNode t) Null Null


{
if (t == null) throw exception; 1 4
while (t.left != null) {
t = t.left; Null
} Null
Null
return t; 3
}
ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 44
Find Maximum
• Mencari node yang memiliki nilai terbesar
• Algorithm?
• Code?

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 45


Find (X)
• Diberikan sebuah nilai yang harus dicari dalam sebuah BST. Jika ada elemen tersebut, return
node tersebut. Jika tidak ada, return null.
• Algoritma:
– Cari dari kiri terus sampai dapat atau
– Cari dari kanan terus sampai dapat
• Kode programnya.
boolean find (int x, BinaryNode t)
{
if (t == null)
throw false;
if(t.element == x)
return true;
else if(x < t.element)
return find(x, t.left);
else if(x > t.element)
return find(x, t.right);
} ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 46
Remove (X)
• Kasus 1: jika node adalah leaf (tidak
punya anak),langsung saja dihapus.
• Kasus 2: jika node punya satu anak:
node parent menjadikan anak dari node
yang dihapus (cucu) sebagai anaknya.
(mem-by-pass node yang dihapus).
• Kasus 3: jika node punya dua anak node
mana yang harus menggantika node
(parent) yang akan dihapus?
ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 47
Kasus 1
• Setelah node 5 dihapus

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 48


Kasus 2
• Setelah node 6 dihapus

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 49


Kasus 3
• Bagaimana bila node punya dua anak?
1. Hapus isi node (tanpa mendelete node)
2. Gantikan posisinya dengan:
– Node terkecil dari sub tree kanan (Succesor Inorder), dilanjutkan dengan
melakukan removeMin di subtree kanan.

ATAU

2. Gantikan posisinya dengan:


– Node terbesar dari sub tree kiri (Predecesor Inorder), dilanjutkan dengan
melakukan removeMax di subtree kiri.

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 50


ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 51
Removing Root

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 52


Kode Program Remove
(Pendekatan Succesor Inorder)
BinaryNode remove(int x, BinaryNode t) {
if (t == null) throw exception; BinaryNode removeMin(BinaryNode t)
if (x < t.element) { {
if (t == null) throw exception;
t.left = remove(x, t.left); if (t.left != null) {
} else if (x > t.element) { t.left = removeMin (t.left);
t.right = remove(x, t.right); return t;
} else {
} else if (t.left != null && t.right != null) { return t.right;
t.element = findMin(t.right).element; }
t.right = removeMin(t.right); }
} else {
t = (t.left != null) ? t.left : t.right;
}
return t;
}
ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 53
Kode Program Remove
(Pendekatan Predecesor Inorder)
BinaryNode remove(int x, BinaryNode t) {
? BinaryNode removeMax(BinaryNode t)
} {
?
}

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 54


Find k-th element

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 55


Find k-th element
BinaryNode findKth(int k, BinaryNode t)
{
if (t == null) throw exception;
int leftSize = (t.left != null) ? t.left.size : 0;
if (k <= leftSize ) {
return findKth (k, t.left);
} else if (k == leftSize + 1) {
return t;
} else {
return findKth ( k - leftSize - 1, t.right);
}
}

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 56


Analisis
• Running time: (Baca Mark Allen Weiss, Data Structures and
Problem Solving Using Java (4rd edition), Addison Wesley, 2010,
Bab 19.3)
– insert?
– Find min?
– remove?
– Find?
• Worst case: O(n)

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 57


Terima kasih

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 58


Latihan
• a. simpul akar
• b. jumlah daun,
• c. simpul – simpul daun, d. sub-pohon
A
yang ada,
B I
• e. kedalaman pohon,
• f. tinggi pohon,
C D J • g. kedalaman simpul dengan kunci
pencarian (search key) = E,
• h. anak dari simpul dengan kunci
E G K L

F H pencarian = I.
• i. induk dari simpul dengan kunci
pencarian = C dan G.
• Skematik diagram implementasi pohon
dengan linked list

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 59


Latihan
• Diberikan data T={11, 14, 15, 16, 20,21,25,26,30}
• Bagaimana gambar skematik binary search tree-nya
• Bagaimana gambar skematik bainary search tree-nya setelah
nilai 14 dihapus?
• Bagaimana gambar skematik bainary search tree-nya setelah
nilai 9 ditambahkan?

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 60


Daftar Pustaka

• Mark Allen Weiss, Data Structures and Problem Solving


Using Java (4rd edition), Addison Wesley, 2010
• Liem, Inggriani (2008). Draft Diktat Struktur Data. Teknik
Informatika ITB
• Music: https://www.bensound.com

ICB/Alsrtudat/Tree, Binary Tree dan Binary Search Tree 61

Anda mungkin juga menyukai