Tree
Pertemuan 14
Outline
My Document
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-child, father-son, node 1 root
mother-daughter
node 2
Nama node: nama(angka) yang 3
dipakai untuk membedakan
sebuah node dengan node yang 4 5 6 7 node
leaf
lain. Dalam kuliah ini adalah leaf
yang sama
node 2 3
Ancestor dari node x :
node yang ditemukan,
4 5 6
ketika menyusuri tree leaf leaf
7 node
x : node yang
ditemukan ketika
menyusuri tree ke
bawah dari node x
Level
1 0
2 3 1
4 5 6 7 2
8 9 10 3
Definisi TREE
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 T1 ~ Tk , dan masing-masing memiliki
root n1 ~ nk.Jika node n adalah parent dari noden1 ~ 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
Definisi TREE
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
C 26 D 38 C 56 78 D
56 78
56 78 F 100 E F
E
100
100 G
G
Latihan 1
10 A
20 B 30 E
C 40 D 50 F 60 70 H
80 G 90 I 100 J
Outline
C D
E F
A→B→C→D→E→G→F→H
Implementasi dalam bahasa C
struct node {
struct node left;
struct node right;
char label;
}
C D
E F
C→B→G→E→D→F→A→H
Implementasi dalam bahasa C
struct node {
struct node left;
struct node right;
char label;
}
subtree
B
2. Traverse the right H
subtree
C D
3. Visit the root
E F
C→G→E→F→D→B→H→A
Implementasi dalam bahasa C
struct node {
struct node left;
struct node right;
char label;
}
C D J
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
1001 1002
2 1003 1002 6
6
3
10 A
50 B 250 F 300 G
450 J 500 K