TREE (Struktur Data Bentuk Pohon)

advertisement
Struktur Pohon ( TREE )
Modul Kuliah Struktur Data
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
H
2
I
KLASIFIKASI TREE
3
Istilah-istilah dalam TREE
• A merupakan simpul AKAR/ROOT
• D, G, H, & I disebut simpul luar/DAUN
• B, C, E, F disebut simpul dalam
• 0, 1, 2, 3 merupakan level/tingkatan
kedalaman setiap simpul
• Level yang sama merupakan generasi
yang sama
• Edge/sisi
merupakan
garis
yang
menghubungkan simpul yang satu
dengan yang lain.
• A – B – E – G atau A – C – F – I, disebut
lintasan (PATH)
• Tinggi simpul : panjang lintasan dari
simpul tersebut ke daun keturunannya
yang paling jauh
• Kedalaman (level) simpul : panjang
lintasan dari simpul tersebut ke AKAR
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.
[email protected]
Halaman
1
Struktur Pohon ( TREE )
Modul Kuliah Struktur Data
A
A
B
C
B
E
D
C
D
Extended B-Tree
E
G
F
Pohon Biner Komplit
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
C
D
E
I
H
G
F
Pohon Biner Hampir Komplit
TRAVERSING BINARY TREE
Metode pembacaan/kunjungan pada sebuah Tree dapat dilakukan dengan
beberapa cara, yaitu :
1. PREORDER
:R
T1
T2
2. INORDER
: T1
R
T2
T2
R
3. POSTORDER : T1
A
R
T1
T2
Informasi yang diperoleh dari operasi
travesing thd tree di samping adalah:
B
D
C
E
[email protected]
F
G
PREORDER
:
ABDECFG
INORDER
:
DBEAFCG
POSTORDER :
DEBFGCA
Halaman
2
Struktur Pohon ( TREE )
Modul Kuliah Struktur Data
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*B–C
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
+
*
B
G
*
C
/
F
Simpul Luar (DAUN)
Simpul Dalam
D
E
Latihan :
Buatlah Pohon Biner dari ekspresi aritmatika berikut ini,
• P*Q/R–S*T+U/V
• A * (B – C) / (D + E) * F * G
• V * (W / (X – (Y + Z)))
• (2 * 3 / 2 – 7) * (9 + 5 / 3)
.
[email protected]
Halaman
3
Struktur Pohon ( TREE )
Modul Kuliah Struktur Data
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:
–
*
3
LE
=
=
2+2+1
5
LI
=
1
P
=
=
=
8*2+2*2+3*1
16 + 4 + 3
23
2
8
Latihan:
Hitunglah:
–
+
a. LE = …. ?
+
b. LI = …. ?
2
*
7
*
c. P
1
3
/
2
= …. ?
4
3
Tree Dengan Panjang Lintasan Luar Berbobotnya (P) Minimum
Untuk membentuk 2-Tree dengan P minimum dapat dilakukan dengan
menerapkan algoritma HUFFMAN.
Contoh:
Bentuklah 2-tree dengan bobot masing-masing daunya dalah: 6, 5, 3, 7, 10.
Sehingga P-nya minimum.
[email protected]
Halaman
4
Struktur Pohon ( TREE )
Modul Kuliah Struktur Data
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:
6
Step 1:
5
8
3
3
7
10
6
7
10
5
8
Step 2:
13
3
5
Step 3:
6
7
18
8
3
10
13
10
6
7
5
Step 4::
31
18
8
3
13
6
10
5
[email protected]
7
P
= 3 * 3 + 5 * 3 + 10 * 2 + 6 * 2 + 7 * 2
P
= 9 + 15 + 20 + 12 + 14
P
= 70
Halaman
5
Struktur Pohon ( TREE )
Modul Kuliah Struktur Data
BINARY SEARCH TREE
(BST)
Binary Search Tree (BST) merupakan suatu Pohon Biner yang mempunyai aturan
sebagai berikut :
T1 < R < T2.
Fungsi dari BST adalah:
1. Pencarian data
2. Menghilangkan duplikasi data
3. Sorting Data
Searching dan Inserting
Contoh: bentuklah BST dari data berikut : 60, 80, 30, 50, 65, 20, 10, 90, 25.
Untuk membentuk BST dapat dilakukan dengan langkah-langkah sebagai berikut:
1. Data pertama sebagai Root
2. Untuk penyisipan data berikutnya ikuti aturan : T1 < R < T2
R
Left < Root < Right
T1
T2
Tree yang terbentuk sebagai berikut :
60
30
20
10
[email protected]
80
50
65
90
25
Halaman
6
Download