Tree
Tree (Pohon) Dalam dunia nyata, sebuah pohon memiliki : akar, cabang, daun. Dalam dunia komputer, pohon (tree) memiliki 3 (tiga) bagian tersebut namun dalam definisi yang lain.
Linear List dan Tree Linear list digunakan untuk data yang terurut secara serial. –Contoh : nama mahasiswa satu kelas, nama hari dalam minggu, nama bulan dalam tahun, dll. Tree digunakan untuk data yang terurut secara hirarki (one to many). –Contoh : tingkatan pegawai dalam perusahaan (direktor, manager, kepala divisi, dst), tingkatan class di Java, dll.
Contoh Tree Struktur organisasi sebuah perusahaan
Contoh Tree isi sebuah buku
Contoh Tree File system
Definisi Tree adalah Kumpulan element yang saling terhubung secara hirarki (one to many). Element pada tree disebut node. Aturan : Sebuah node hanya boleh memiliki satu induk/parent. Kecuali root, tidak memiliki induk/parent. Setiap node dapat memiliki nol atau banyak cabang anak (one to many). Node yang tidak memiliki cabang anak disebut daun.
Contoh Tree Terdiri dari 8 node/element. Root? Daun? A C F G ED B H Root : Node A Daun : Node G, Node H, Node F
great grand child of root grand children of root children of root Example : Java’s Classes Object NumberThrowable OutputStream IntegerDoubleException FileOutputStream RuntimeException root
Root Root (Node Root) adalah node yang memiliki hirarki tertinggi. Node yang pertama kali dibentuk. Sehingga tidak memiliki parent (node induk). Penelusuran path tiap node dimulai dari root. Subtree adalah node-node lain dibawah root yang saling terhubung satu sama lain secara hirarki.
Root and Subtrees Object NumberThrowable OutputStream IntegerDoubleException FileOutputStream RuntimeException root Subtree 1 Subtree 2 Subtree 3
Levels Level adalah posisi hirarki dari sebuah node. Level 4 Level 3 Level 2 Object NumberThrowable OutputStream IntegerDoubleException FileOutputStream RuntimeException Level 1
Istilah pada Tree
Contoh Tree D H E I C F B A J G
Latihan Ancestor (F)? Descendant (B)? Parent (I)? Child (C)? Sibling (G)? Size? Height? Root? Leaf? Degree (C)?
Latihan Jawaban : Ancestor (F) = C,A Descendant (B) = D atau E Parent (I) = H Child (C) = F,G,H Sibling (G) = F,H Size = 9 Height = 4 Root = A Leaf = D,E,F,G,I Degree (C) = 3
Latihan Gambarkan tree dari representasi berikut: D F D B K J K L B A B C H D H K F E F G J I Tentukan : 1.Root 2.Leaf 3.Heigth 4.Child H 5.Parent A
Representasi Tree? Database, file xml. Paling mudah menggunakan database.
Binary Tree
Binary Tree (Pohon Biner) Pada sebuah pohon biner, tiap node memiliki tepat 2 sub-tree (memiliki maksimal 2 cabang/degree).
Contoh binary tree R ST X W UV Y Z
Contoh Binary Tree Representasi ekspresi arithmatik
Latihan Buatlah Binary tree dari ekspresi aritmatik berikut : (a + b) * (c – d) / (e + f)
Binary Tree (a + b) * (c – d) / (e + f) / + a b - c d + e f * /
Representasi Binary Tree Binary tree dapat direpresentasikan dengan menggunakan array maupun linked list.
Akses Elemen Posisi node dapat ditentukan berdasarkan rumus berikut : Asumsi root dimulai dari index 0 : –Anak kiri dari node i berada pada indeks : 2*i+1 –Anak kanan dari node i berada pada indeks : 2*i+2 Asumsi root dimulai dari index 1 : –Anak kiri dari node i berada pada indeks : 2*i –Anak kanan dari node i berada pada indeks : 2*i+1
Contoh H DK BFJL ACEG I
Representasi Tree HDKBFJLACEGI Representasi tree menggunakan array (asumsi root pada index 0) : HDKBFJLACEGI Representasi tree menggunakan array (asumsi root pada index 1):
Linked Representation H KD B A L J I leftChild elementrightChild root F C E G
Latihan Representasikan dengan ilustrasi array dan linked list. b a c d e f g hi j
Array Representation tree[] abcdefghij b a c d e f g hi j
Full Binary Tree Tiap subtree memiliki panjang path yang sama. Disebut juga maximum binary tree.
Complete Binary Tree Seluruh node sebelah kiri terisi seluruhnya. Node sebelah kanan pada level n-1 ada yang kosong. H DK BFJL ACEG I
Incomplete Binary Tree Gambar a Gambar b
Skewed Binary Tree Binary tree yang semua nodenya (kecuali leaf) hanya memiliki satu anak. Disebut juga minimum binary tree. Right Skewed Left Skewed
Binary Tree Traversal
Definisi Penelusuran seluruh node pada binary tree. Metode : –Preorder –Inorder –Postorder –Level order
PreOrder Traversal Preorder traversal 1.Cetak data pada root 2.Secara rekursif mencetak seluruh data pada subpohon kiri 3.Secara rekursif mencetak seluruh data pada subpohon kanan
Preorder Example (visit = print) a bc a b c
a bc d e f g hi j abdgheicfj
Preorder Of Expression Tree + ab - c d + ef * / Gives prefix form of expression! /*+ab-cd+ef
InOrder Traversal Inorder traversal 1.Secara rekursif mencetak seluruh data pada subpohon kiri 2.Cetak data pada root 3.Secara rekursif mencetak seluruh data pada subpohon kanan
Inorder Example (visit = print) a bc bac
a bc d e f g hi j gdhbeiafjc
Postorder Traversal Postorder traversal 1.Secara rekursif mencetak seluruh data pada subpohon kiri 2.Secara rekursif mencetak seluruh data pada subpohon kanan 3.Cetak data pada root
Postorder Example (visit = print) a bc bca
a bc d e f g hi j ghdiebjfca
Postorder Of Expression Tree + ab - cd + e f * / Gives postfix form of expression! ab+cd-*ef+/
Level Order Secara rekursif mencetak data mulai dari level tertinggi
Level-Order Example (visit = print) a bc d e f g hi j abcdefghij
Latihan Telusuri pohon biner berikut dengan menggunakan metode pre, in, post, dan level traversal.
Latihan
Latihan