Binary Tree.

Slides:



Advertisements
Presentasi serupa
Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2009
Advertisements

Tree Kumpulan node yang saling terhubung satu sama lain dalam suatu kesatuan yang membentuk layaknya struktur sebuah pohon. Struktur pohon adalah suatu.
STRUKTUR DATA (10) tree manipulation
JULIAN ADINATA PAUL JHONATAN UKEU PUTRI ROMLI MAULANA
Binary Tree Traversal.
BAB 9 TREE Tujuan Instruksional Umum:
STRUKTUR DATA TREE (POHON)
7 POHON BINER BAB Definisi Pohon dan Pohon Biner
By : Fitroh Amaluddin & Galih Wasis W.
Implementasi Binary Tree
Pertemuan Struktur Data *Pohon Ekspresi *
Tree Yuliana S.
Binary Tree Rangga Juniansyah.
Penelusuran Bab 7 Pohon Biner 219.
ADT Tree 2007/2008 – Ganjil – Minggu 8.
Binary Search Tree 2007/2008 – Ganjil – Minggu 9.
Tenia Wahyuningrum, S.Kom. MT
STRUKTUR DATA tree manipulation
BINARY TREE Universitas Ahmad Dahlan
1 Pertemuan Tree Matakuliah: T0026/Struktur Data Tahun: 2005 Versi: 1/1.
Pertemuan 13 Graph + Tree jual [Valdo] Lunatik Chubby Stylus.
Algoritma dan Struktur Data
Tree. Tree (Pohon) Dalam dunia nyata, sebuah pohon memiliki : akar, cabang, daun. Dalam dunia komputer, pohon (tree) memiliki 3 (tiga) bagian tersebut.
Mata kuliah :K0362/ Matematika Diskrit Tahun :2008
Binary Search Tree. Sebuah node di Binary Search Tree memiliki path yang unik dari root menurut aturan ordering – Sebuah Node, mempunyai subtree kiri.
Trees and Binary Trees Become Rich Force Others to be Poor Rob Banks
Struktur Data Tree Eka Rahayu S. (2 Agustus 2011).
POHON / TREE.
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
Binary Tree.
Menggambar Tree wijanarto.
Defri Kurniawan POHON DAN POHON BINER Defri Kurniawan
TREE STRUCTURE (Struktur Pohon)
STRUKTUR DATA Chapt 6 : TREE Oleh : Yuli Praptomo PHS, S.Kom.
Struktur Data Binary Search Tree (BST)
PohonBiner Rachmansyah, S.Kom..
Linear Data Structures (Stack)
Diagram Pohon (Tree Diagram)
Manipulasi Tree.
TREE KELOMPOK 7 HUSNATUL WILDA ( ) MISRIANA ( )
POHON.
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
STRUKTUR DATA Tree (Struktur Pohon).
Tree (POHON).
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
NAMA : SITI HAJAR NIM : UNIT : B NO.HP :0852 –
STRUKTUR DATA 2014 M. Bayu Wibisono.
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
Manipulasi Tree.
Tree.
Teknik Informatika - Universitas Muhammadiyah Malang (UMM)
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
Parts of a Tree.
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
Penelusuran Binary Tree
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
Tree (Pohon).
POHON Pohon (Tree) merupakan graph terhubung tidak berarah dan tidak mengandung circuit. Contoh: (Bukan) (Bukan) (Bukan)
Oleh Shoffin Nahwa Utama, S.Kom
IT234 Algoritma dan Struktur Data
Tree.
IT234 Algoritma dan Struktur Data
Pohon Biner.
Algoritma dan Struktur Data
IT234 Algoritma dan Struktur Data
TREE Oleh : Neny silvia Nurhidayah Afny wilujeng Setyorini
5 11/18/2018.
Review Struktur Data Nisa’ul Hafidhoh, MT.
Transcript presentasi:

Binary Tree

Sub Topik Penjelasan Tree Istilah pada tree Binary Tree Jenis Binary Tree ADT Binary tree

Tree (Pohon)

Real World leaves branches root

Computer Scientist’s View root leaves branches nodes

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 jumlah berapapun.

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 perusahaan.

Contoh Tree Mis. : Struktur organisasi sebuah perusahaan

Contoh Tree Mis. : Daftar isi sebuah buku

Contoh Tree Mis. : File system

Tree (Pohon) Root adalah node yang memiliki hirarki tertinggi. Subtree (pohon anak) adalah beberapa node yang tersusun hirarki yang ada dibawah root.

Root and Subtrees root 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 level dari sebuah tree.

Leaves Object OutputStream Number Throwable FileOutputStream Integer Double Exception RuntimeException

Node Degree Object Number Throwable OutputStream Integer Double Exception FileOutputStream RuntimeException 3 2 1 1 1

Level Level 3 Object Number Throwable OutputStream Integer Double Exception FileOutputStream RuntimeException Level 4 Level 2 Level 1 Level 1 Level 2 Level 3 Level 4

Contoh Tree (Pohon) R Root/Akar Level 0 S T Level 1 X U V W Level 2 Daun/ Leaf Level 3 Y Z 17

Istilah Tree (Pohon)

Latihan Ancestor (F)? Descendant (B)? Parent (I)? Child (C)? Sibling (G)? Size? Height? Root? Leaf? Degree (C)?

Tree (Pohon) Dimana, Ancestor (F) = C,A Descendant (B) = D,E Parent (I) = H Child (A) = B,C Sibling (F) = G,H Size = 9 Height = 3/4 Root = A Leaf = D,E,F,G,I Degree (C) = 3

Binary Tree

Gambar Binary Trees

Binary Tree Tiap node pada binary tree hanya boleh memiliki paling banyak dua child. Sehingga hanya ada dua subtree pada binary tree yang disebut sebagai left dan right subtrees.

Tree dan Binary Tree Pada binary tree nilai degree tidak lebih dari 2, sedangkan pada tree tidak terbatas. Sub tree pada binary harus terurut (ordered), sedangkan pada tree tidak (un-ordered).

Jenis Binary Tree Berdasarkan subtree binary tree dibedakan menjadi 4 jenis: Full Binary Tree Complete Binary Tree Incomplete Binary Tree (Unbalanced Tree) Skewed Binary Tree

Jenis Tree (Full Binary Tree) Semua node (kecuali leaf) memiliki nol atau 2 anak dan tiap subtree memiliki panjang path yang sama. Disebut juga maximum binary tree.

Maximum Binary Tree

Jenis Tree (Complete Binary Tree) Seluruh node sebelah kiri terisi seluruhnya. Node sebelah kanan pada level n-1 ada yang kosong.

Complete Binary Tree H D K B F J L I A C E G

Incomplete Binary Tree Gambar a Gambar b

Jenis Tree (Skewed Binary Tree) Binary tree yang semua nodenya (kecuali leaf) hanya memiliki satu anak. Disebut juga minimum binary tree. Left Skewed Right Skewed

Binary Tree Representation

Representation Array representation Linked list 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); public void inOrder(Method visit); public void postOrder(Method visit); public void levelOrder(Method visit); }

Array Representation

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 indeks : 2*i+2 Struktur Data - Tree

Penambahan array size 1 node (root) = 20 Root + node pada level 1 = 20 +21 Root + node pada level 1 & 2 = 20 +21+22 Root + node pada level 1,2,3 = 20 +21 +22 +23 Root + node pada level 1,2,..n=20+21+22+...+2n

Array Representation tree[] b a c d e f g h i j 1 2 3 4 5 6 7 8 9 10 2 5 10 a b c d e f g h i j 5 10

Right-Skewed Binary Tree 1 a b 1 3 c 7 d 15 3 7 15 tree[] 5 10 a - b c 15 d 5 10 15

Linked List Representation

Class BinaryTreeNode class BinaryTreeNode { Object element; BinaryTreeNode leftChild; // left subtree BinaryTreeNode rightChild;// right subtree // constructors and any other methods come here }

Contoh Representasi Linked List b d f e g h leftChild element rightChild root root leftChild element rightChild

Binary Tree Traversal

Definisi Penelusuran seluruh node pada binary tree. Metode : Preorder Inorder Postorder Level order

Preorder Traversal public static void preOrder(BinaryTreeNode t) { if (t != null) visit(t); preOrder(t.leftChild); preOrder(t.rightChild); } t is the root of the subtree being traversed.

PreOrder Traversal Preorder traversal Cetak data pada root Secara rekursif mencetak seluruh data pada subpohon kiri Secara rekursif mencetak seluruh data pada subpohon kanan

Preorder Example (visit = print) b c a b c

Preorder Example (visit = print) b c d e f g h i j During the traversal, t starts at the root, moves to the left child b of the root, then to the left child d of b. When the traversal of the left subtree of b is complete, t, once again, points to the node b. The t moves into the right subtree of b. When the traversal of this right subtree is complete, t again points to b. Following this, t points to a. We see that t points to every node in the binary tree three times – once when you get to the node from its parent (or in the case of the root, t is initially at the root), once when you return from the left subtree of the node, and once when you return from the node’s right subtree. Of these three times that t points to a node, the node is visited the first time. a b d g h e i c f j

Preorder Of Expression Tree + a b - c d e f * / / * + a b - c d + e f Gives prefix form of expression!

Inorder Traversal public static void inOrder(BinaryTreeNode t) { if (t != null) inOrder(t.leftChild); visit(t); inOrder(t.rightChild); }

InOrder Traversal Inorder traversal Secara rekursif mencetak seluruh data pada subpohon kiri Cetak data pada root Secara rekursif mencetak seluruh data pada subpohon kanan

Inorder Example (visit = print) b c b a c

Inorder Example (visit = print) b c d e f g h i j g d h b e i a f j c

Inorder By Projection (Squishing) a b c d e f g h i j g d h b e i a f j c

Inorder Of Expression Tree + a b - c d e f * / e a + b * c d / f - Gives infix form of expression (sans parentheses)!

Postorder Traversal public static void postOrder(BinaryTreeNode t) { if (t != null) postOrder(t.leftChild); postOrder(t.rightChild); visit(t); }

Postorder Traversal Postorder traversal Secara rekursif mencetak seluruh data pada subpohon kiri Secara rekursif mencetak seluruh data pada subpohon kanan Cetak data pada root

Postorder Example (visit = print) b c b c a

Postorder Example (visit = print) b c d e f g h i j g h d i e b j f c a

Postorder Of Expression Tree + a b - c d e f * / a b + c d - * e f + / Gives postfix form of expression!

Traversal Applications b c d e f g h i j Make a clone using postorder traversal … clone the left subtree, clone the right subtree, clone the root in the visit step. Determine height using postorder traversal … determine the height of the left subtree, determine the height of the right subtree, in the visit step add 1 to the max of the already determined heights of the left and right subtrees. Determine number of nodes using preorder, inorder, or postorder traversal … initialize a counter to 0, add 1 to the counter in the visit step. Make a clone. Determine height. Determine number of nodes.

Level Order Let t be the tree root. while (t != null) { visit t and put its children on a FIFO queue; remove a node from the FIFO queue and call it t; // remove returns null when queue is empty }

Latihan Telusuri pohon biner berikut dengan menggunakan metode pre, in, post, dan level traversal.

Latihan 1 a. b.

Latihan 2

Level-Order Example (visit = print) b c d e f g h i j a b c d e f g h i j

Contoh : Pohon Ekspresi

PreOrder, PostOrder, InOrder Node, left, right Ekspresi Prefix : ++a*bc*+*defg Post-order : Ekspresi Postfix : abc*+de*f+g*+ In-order : Ekspresi Infix : a+b*c+d*e+f*g

Pustaka Sartaj Sahni , “Data Structures & Algorithms”, Presentation L20-24. Mitchell Waite, “Data Structures & Algorithms in Java”, SAMS, 2001