TREE
(Struktur Pohon)
TREE merupakan struktur data yang menyatakan simpul-simpul data sebagai
hubungan hirarki (parent and child structured), dimana simpul yang mempuyai
derajat/hirarki lebih tinggi berada di atas, contoh :
Silsilah keluarga
Struktur organisasi
A
B
D
0
C
E
G
1
F
2
I
KLASIFIKASI TREE
1. TREE UMUM
Tree umum adalah tree dimana jumlah anak/keturunan masing-masing simpulnya
0, 1, 2,, N.
2. BINARY TREE
Binary Tree adalah tree dimana jumlah anak/keturunan masing-masing simpulnya
0, 1 atau 2.
KLASIFIKASI BINARY TREE
1. Strictly Binary Tree / 2-Tree / Extended B-Tree : Pohon Biner yang setiap
simpulnya mempunyai ANAK 0 atau 2. Jika Jumlah daun = N, maka jumlah
keseluruhan simpul dalam tree tersebut adalah 2N 1 simpul.
2. Pohon Biner Komplit : Merupakan pohon seimbang komplit, dimana setiap
DAUN-nya memiliki level/kedalaman yang sama (misalkan d) dan setiap simpul
yang bukan DAUN memiliki ANAK 2. (DAUN) = 2d, dan
(Simpul dalam) = 2d 1.
Stmikp3m@ojit.ac.id
Halaman
B
E
Extended B-Tree
3. Pohon Biner Hampir Komplit : Pohon Biner yang mempunyai DAUN pada
level d atau d 1, dan jika setiap simpul keturunan kanan berada pada level d,
maka setiap simpul keturunan kiri yang merupakan daun juga memiliki level d
atau d + 1.
A
B
E
I
:R
T1
T2
2. INORDER
: T1
T2
T2
3. POSTORDER : T1
A
T1
T2
B
D
C
E
Stmikp3m@ojit.ac.id
PREORDER
ABDECFG
INORDER
DBEAFCG
POSTORDER :
DEBFGCA
Halaman
APLIKASI TREE
1. Mengubah Notasi Infix Menjadi PreFix dan PostFix
Bila model 2-Tree digunakan untuk mempresentasikan ekspresi aritmatika dalam
notasi Infix, maka pohon dibentuk dengan ketentuan sebagai berikut :
Simpul dalam tempat meyimpan operator
Simpul luar (daun) tempat meyimpan operand
Operand kiri menjadi anak kiri dan Operand kanan jadi anak kanan dari
Operatornya
Evaluasi ekspresi dilakukan mulai Operator yang mempunyai derajat kedalaman
tertinggi hingga terendah, dengan mengoperasikan dua Operand terhadap Operator
orang tuanya.
Contoh :
Notasi Infix
: A*BC
Notasi Infix
: A + B * C (D / E * F + G)
Notasi Postfix : A B * C
Notasi Postfix : A B C * + D E / F * G +
C
B
A
Keterangan :
+
A
+
*
*
C
Latihan :
Buatlah Pohon Biner dari ekspresi aritmatika berikut ini,
P*Q/RS*T+U/V
A * (B C) / (D + E) * F * G
V * (W / (X (Y + Z)))
(2 * 3 / 2 7) * (9 + 5 / 3)
.
Stmikp3m@ojit.ac.id
Halaman
PANJANG LINTASAN
Panjang Lintasan Luar (LE) adalah jumlah panjang lintasan dari akar sampai ke
semua simpul luar (DAUN)
Panjang Lintasan Dalam (LI) adalah jumlah panjang lintasan dari akar sampai
kesemua simpul dalam
Panjang Lintasan Luar berbobot (P) adalah jumlah panjang lintasan dari akar
sampai ke semua simpul luar (DAUN) dikalikan dengan bobot masingmasing DAUN
P = (bobot masing-masing DAUN * Level daun tersebut )
Contoh:
LE
=
=
2+2+1
5
LI
=
=
=
8*2+2*2+3*1
16 + 4 + 3
23
Latihan:
Hitunglah:
a. LE = . ?
b. LI = . ?
2
c. P
1
/
2
= . ?
4
3
Contoh:
Bentuklah 2-tree dengan bobot masing-masing daunya dalah: 6, 5, 3, 7, 10.
Sehingga P-nya minimum.
Stmikp3m@ojit.ac.id
Halaman
Algoritma HUFFMAN
Digunakan untuk mebentuk 2-tree dengan Panjang Lintasan Luar Berbobotnya
minimum, dengan langkah-langkah sebagai berikut :
1. Pilih 2 DAUN (Child) atau AKAR (Parent) dengan nilai terkecil
2. Padukan kedua DAUN atau AKAR tersebut menjadi sebuah Sub Tree dengan
nilai AKAR (Parent) hasil penjumlahan kedua DAUN atau AKAR tersebut
3. Ulangi langkah ke 1 sampai terbentuk sebuah 2-tree yang utuh.
Step 0:
Step 1:
5
8
10
10
5
8
Step 2:
13
Step 3:
18
8
10
13
10
Step 4::
31
18
8
3
13
6
10
5
Stmikp3m@ojit.ac.id
= 3 * 3 + 5 * 3 + 10 * 2 + 6 * 2 + 7 * 2
= 9 + 15 + 20 + 12 + 14
= 70
Halaman
T2
60
30
20
10
Stmikp3m@ojit.ac.id
80
50
65
90
25
Halaman