Binary Tree
Teknik Informatika - Universitas Muhammadiyah Malang (UMM) Tahun Akademik 2010-2011
Sub Topik
• Penjelasan Tree
• Istilah pada tree
• Binary Tree
• Jenis Binary Tree
Real World
root
branches
Computer Scientist’s View
branches
leaves
root
Definisi
• Kumpulan node yang saling terhubung
secara hirarki.
• Hirarki = bertingkat.
• Tiap node dapat berisi data dan link
(penghubung) ke node lainnya
• Tiap node memiliki satu induk, kecuali
node root (akar) yang tidak memiliki induk.
• Tiap node dapat memiliki anak dalam
Linked list dan Tree
• Linked list linear/serial data
– Contoh : nama-nama mahasiswa dalam
satu kelas.
• Tree non linear/hierachically data
– Contoh : tingkatan pegawai dalam
Contoh Tree
• Mis. : Struktur organisasi sebuah
Contoh Tree
Contoh Tree
Tree (Pohon)
• Root adalah node yang memiliki
hirarki tertinggi.
• Subtree (pohon anak) adalah
Root and Subtrees
Object
Number Throwable OutputStream
Integer Double Exception FileOutputStream
RuntimeException
Tree (Pohon)
• Level adalah posisi hirarki dari
sebuah node. Untuk root bisa diberikan level 0 atau 1.
• Leaf (Daun) adalah node yang tidak
memiliki anak atau node yang
berada pada hirarki paling bawah.
• Height (tinggi)/depth adalah jumlah
Leaves
Object
Number Throwable OutputStream
Integer Double Exception FileOutputStream
Node Degree
Object
Number Throwable OutputStream
Integer Double Exception FileOutputStream
RuntimeException
3
2 1 1
0 0 1 0
Level
Level 3
Object
Number Throwable OutputStream
Integer Double Exception FileOutputStream
RuntimeException
Level 4
Level 2 Level
1
Level 3
Level 4
17
Contoh Tree (Pohon)
Level 0
Level 1
Level 2
Level 3
Latihan
Ancestor (F)?
Descendant (B)? Parent (I)?
Child (C)? Sibling (G)? Size?
Height? Root? Leaf?
Tree (Pohon)
• Dimana,
Ancestor (F) = C,A
Descendant (B) = D,E Parent (I) = H
Binary Tree
• Tiap node pada binary tree hanya
boleh memiliki paling banyak dua child.
• Sehingga hanya ada dua subtree pada
Tree dan Binary Tree
• Pada binary tree nilai degree tidak
lebih dari 2, sedangkan pada tree tidak terbatas.
• Sub tree pada binary harus terurut
Jenis Binary Tree
• Berdasarkan subtree binary tree
dibedakan menjadi 4 jenis:
– Full Binary Tree
– Complete Binary Tree
– Incomplete Binary Tree (Unbalanced
Tree)
Jenis Tree
(Full Binary Tree)
• Semua node (kecuali leaf) memiliki nol
atau 2 anak dan tiap subtree memiliki panjang path yang sama.
Jenis Tree
(Complete Binary Tree)
• Seluruh node sebelah kiri terisi
Complete Binary Tree
H
D K
B F J L
Incomplete Binary Tree
Jenis Tree
(Skewed Binary Tree)
• Binary tree yang semua nodenya
(kecuali leaf) hanya memiliki satu anak.
• Disebut juga minimum binary tree.
Binary Tree
Representation
• Array representation
ADT BinaryTree
public interface BinaryTree {
public boolean isEmpty(); public Object root();
public void makeTree(Object root, Object left, Object right);
public BinaryTree removeLeftSubtree(); public BinaryTree removeRightSubtree(); public void preOrder(Method visit);
Struktur Data - Tree 36
Akses Elemen
• Posisi node dapat ditentukan
berdasarkan rumus berikut :
– Anak kiri dari node i berada pada indeks
: 2*i+1
– Anak kanan dari node i berada pada
Class BinaryTreeNode
class BinaryTreeNode {
Object element;
BinaryTreeNode leftChild; // left subtree
BinaryTreeNode rightChild;// right subtree
// constructors and any other methods come here
Definisi
• Penelusuran seluruh node pada
binary tree.
• Metode :
– Preorder
– Inorder
– Postorder
Preorder Traversal
PreOrder Traversal
• Preorder traversal
1. Cetak data pada root
2. Secara rekursif mencetak seluruh data pada subpohon kiri
Preorder Example (visit =
print)
Preorder Example (visit =
print)
Preorder Of Expression Tree
Gives prefix form of expression!
Inorder Traversal
InOrder Traversal
• Inorder traversal
1.Secara rekursif mencetak seluruh data pada subpohon kiri
2.Cetak data pada root
Inorder Example (visit =
print)
a
b c
Inorder Example (visit =
print)
Inorder Of Expression Tree
Gives infix form of expression (sans parentheses)!
e
Postorder Traversal
Postorder Traversal
• Postorder traversal
1.Secara rekursif mencetak seluruh data pada subpohon kiri
2.Secara rekursif mencetak seluruh data pada subpohon kanan
Postorder Example (visit =
print)
a
b c
Postorder Example (visit =
print)
Postorder Of Expression
Tree
Gives postfix form of expression!
Traversal Applications
• Determine height.
Latihan
• Telusuri pohon biner berikut dengan
PreOrder, PostOrder,
InOrder
• Pre-order :
– Node, left, right
– Ekspresi Prefix : ++a*bc*+*defg
• Post-order :
– Node, left, right
– Ekspresi Postfix : abc*+de*f+g*+
• In-order :
– Node, left, right
Pustaka
• Sartaj Sahni , “Data Structures &
Algorithms”, Presentation L20-24.
• Mitchell Waite, “Data Structures &