Tree
Outline
node 1 root
node 2 3
4 5 6 7 node
leaf leaf
8 9 10
leaf
leaf leaf
Hubungan antar komponen
Hubungan antar elemen: parent-
node 1 root
child, father-son, mother-
daughter
node 2 3
Nama node: nama(angka) yang
dipakai untuk membedakan
sebuah node dengan node yang leaf
4 5 6
leaf
7 node
lain. Dalam kuliah ini adalah
angka yang tertulis dalam 8 9 10
lingkaran. leaf leaf
leaf
menyusuri tree ke
bawah dari node x
Hubungan antar komponen
siblingnode-node yang
memiliki parent yang node 1 root
sama
node 2
Ancestor dari node x 3
1 0
2 3 1
4 5 6 7 2
8 9 10 3
Definisi TREE
Sebuah tree didefinisikan sebagai struktur y ang dibentuk
secara recursive 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 T1Tk , dan masing-masing memiliki
root n1nk.Jika node n adalah parent dari noden1nk,
akan diperoleh sebuah tree baru T yang memiliki root n.
Dalam kondisi ini, tree T1Tkmenjadi sub-tree dari tree
T. Root dari sub-tree n1nkadalah child dari node n .
Tree
root
1
leaf node
Definisi TREE
Sebuah tree didefinisikan sebagai struktur y ang dibentuk
secara recursive 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 T1Tk , dan masing-masing memiliki
root n1nk.Jika node n adalah parent dari noden1nk,
akan diperoleh sebuah tree baru T yang memiliki root n.
Dalam kondisi ini, tree T1Tkmenjadi sub-tree dari tree
T. Root dari sub-tree n1nkadalah child dari node n .
T1 n1 T2 T3 T4
1 n2 1 n3 1 n4
2 3 2
3
Definisi TREE
2. Dari k buah tree T1Tk , dan masing-masing memiliki
root n1nk.Jika node n adalah parent dari noden1nk,
akan diperoleh sebuah tree baru T yang memiliki root n.
Dalam kondisi ini, tree T1Tkmenjadi sub-tree dari tree
T. Root dari sub-tree n1nkadalah child dari node n .
1 n
T
T1 2 n1 T2 T3 T4
3 n2 4 n3 5 n4
6 7 8 9 10 11
12 13 14
Ordered vs Unordered tree
Ordered tree
Antar sibling terdapat urutan usia
Node yang paling kiri berusia paling tua
(sulung), sedangkan node yang paling kanan
berusia paling muda (bungsu)
Posisi node diatur atas urutan tertentu
Unordered tree
Antar sibling tidak terdapat urutan tertentu
Outline
a a a a a
b b b c b
struct node {
struct node *left;
struct node *right;
mydata label; left right label
}
a a
b c
b c
Contoh
A 10
10 14 18 A
14 18
B H
14 26 38 B H
18
26 38
D 38 C 56 78 D
C 26
56 78
56 78 F 100 E F
E
100
100 G
G
Latihan 1
20 B 30 E
C 40 D 50 F 60 70 H
80 G 90 I 100 J
Outline
C D
E F
ABCDEGFH
Implementasi dalam bahasa C
struct node {
struct node *left;
struct node *right;
char label;
}
C D
E F
CBGEDFAH
Implementasi dalam bahasa C
struct node {
struct node *left;
struct node *right;
char label;
}
subtree
B
2. Traverse the right H
subtree
D
3. Visit the root C
E F
CGEFDBHA
Implementasi dalam bahasa C
struct node {
struct node *left;
struct node *right;
char label;
}
D J
C 1. Traverse the left
subtree
E G K L 2. Print
3. Traverse the
F H right subtree
2 6
3 4 5
Implementasi memakai linked-list
3 23 37
1
1 23 5 37 35
5 77 87 95
2 6
2 77 10 87 15 95 25
10
3 4 5 3
15
4
25
label child 5
35
6
1 1000
1 1001
2 6
1001 1002
3 4 5 2 1003 1002 6
1000
1 1 1001
2 6 1001 1002
2 1003 1002 6
3 4 5
1003 1004 1005
3 1004 4 1005 5
Implementasi memakai binary-tree
Rotasi ke kanan 45
1000
1 1001
1001 1002
2 1003 1002 6
10 A
50 B 250 F 300 G
450 J 500 K