M09 Tree1
M09 Tree1
M09 Tree1
1
Merupakan salah satu bentuk struktur data tidak
linear yang menggambarkan hubungan yang
bersifat hirarkis (hubungan one to many) antara
elemen-elemen.
Tree bisa didefinisikan sebagai kumpulan
simpul/node dengan satu elemen khusus yang
disebut Root dan node lainnya terbagi menjadi
himpunan-himpunan yang saling tak berhubungan
satu sama lainnya (disebut subtree).
Contoh penggunaan struktur Tree :
Silsilah keluarga
Hasil pertandingan yang berbentuk turnamaen
Struktur organisasi dari sebuah perusahaan
2
3
Istilah-istilah umum dalam Tree
4
Ascestor (F) = C,A
Descendant (C) = F,G
Parent (D) =B
Child (A) = B,C
Sibling (F) =G
Size =7
Height =3
Root =A
Leaf = D,E,F,G
Degree (C) =2
5
6
1. Binary Tree
Binary tree adalah tree dengan syarat bahwa tiap node
hanya boleh memiliki maksimal dua subtree dan kedua
subtree tersebut harus terpisah.
Sesuai dengan definisi tersebut, maka tiap node dalam
binary tree hanya boleh memiliki paling banyak dua child.
7
Full Binary Tree
Binary Tree yang tiap nodenya (kecuali leaf)
memiliki dua child dan tiap subtree harus
mempunyai panjang path yang sama.
8
Skewed Binary Tree
Yakni Binary Tree yang semua nodenya (kecuali
leaf) hanya memiliki satu child.
atau
9
Binary Tree dapat diimplementasikan dalam
Pascal dengan menggunakan double Linked
List. Untuk nodenya, bisa dideklarasikan
sebagai berikut :
10
Contohilustrasi Tree yang disusun dengan
double linked list :
11
Create : Membentuk binary tree baru yang masih kosong.
Clear : Mengosongkan binary tree yang sudah ada.
Empty : Function untuk memeriksa apakah binary tree masih kosong.
Insert : Memasukkan sebuah node ke dalam tree. Ada tiga pilihan
insert: sebagai root, left child, atau right child.
Khusus insert sebagai root, tree harus dalam keadaan kosong.
Find : Mencari root, parent, left child, atau right child dari suatu
node. (Tree tak boleh kosong)
Update : Mengubah isi dari node yang ditunjuk oleh pointer current.
(Tree tidak boleh kosong)
Retrieve : Mengetahui isi dari node yang ditunjuk pointer current. (Tree
tidak boleh kosong)
DeleteSub : Menghapus sebuah subtree (node beserta seluruh
descendantnya) yang ditunjuk current. Tree tak boleh kosong.
Setelah itu pointer current akan berpindah ke parent dari node
yang dihapus.
Characteristic : Mengetahui karakteristik dari suatu tree, yakni : size, height,
serta average lengthnya. Tree tidak boleh kosong. (Average
Length =
[jumlahNodeLvl1*1+jmlNodeLvl2*2+…+jmlNodeLvln*n]/Size)
Traverse : Mengunjungi seluruh node-node pada tree, masing-masing
sekali. Hasilnya adalah urutan informasi secara linier yang
tersimpan dalam tree. Ada tiga cara traverse : Pre Order, In
Order, dan Post Order.
12
PreOrder : Cetak isi node yang dikunjungi,
kunjungi Left Child, kunjungi Right Child.
InOrder : Kunjungi Left Child, Cetak isi
node yang dikunjungi, kunjungi Right Child
PostOrder: Kunjungi Left Child, Kunjungi
Right Child, cetak isi node yang dikunjungi
13
Contoh :
Preorder inorder postorder
14
Untuk lebih jelasnya perhatikan contoh
operasi-operasi pada Binary Tree berikut ini :
Insert (Root,65)
15
Insert (LeftChild,44)
17
Latihan
1. sebutkan istilah tree :Ascestor,
descendant, parent, child, Sibling,
size, height, root, leaf, degree pada pohon
dibawah ini :
60
20 80
10 40 100
5
50
30 50
18
2 Buatlah binary tree dengan operasi :
Insert (root,18)
Insert (rightchild,23)
Insert (leftchild, 21)
Find (root)
Insert (leftchild,10)
Insert (leftchild, 5)
Find (root)
Find(rightchild)
Insert(rightchlid, 33)
Insert (rightchlid,40)
Find (root)
Find (leftchild)
Insert(rightchild, 14)
Insert (rightchild,17)
19