Algoritma dan Struktur Data

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
Binary Tree Traversal.
Pertemuan 8 STRUKTUR POHON (TREE).
BAB 9 TREE Tujuan Instruksional Umum:
By : Fitroh Amaluddin & Galih Wasis W.
Algoritma dan Struktur Data
Tree.
Pertemuan Struktur Data *Pohon Ekspresi *
Tree Yuliana S.
PART 4 TREE (POHON) Dosen : Ahmad Apandi, ST
Binary Tree Rangga Juniansyah.
Pertemuan 6 TREE & BINARY TREE
Penelusuran Bab 7 Pohon Biner 219.
Algoritma dan Struktur Data
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.
Tree. Tree (Pohon) Dalam dunia nyata, sebuah pohon memiliki : akar, cabang, daun. Dalam dunia komputer, pohon (tree) memiliki 3 (tiga) bagian tersebut.
Matakuliah : T0026/Struktur Data Tahun : 2005 Versi : 1/1
Organisasi Berkas Sekuensial Berindeks
Struktur Data Tree Eka Rahayu S. (2 Agustus 2011).
Binary Tree.
POHON / TREE.
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
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)
Binary Tree Rangga Juniansyah.
Diagram Pohon (Tree Diagram)
Manipulasi Tree.
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.
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
Tim Struktur Data Program Studi Teknik Informatika UNIKOM
Parts of a Tree.
Algoritma dan Struktur Data
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
BINARY SEARCH TREE (BST)
IT234 Algoritma dan Struktur Data
Tree.
IT234 Algoritma dan Struktur Data
LINKED LIST (SENARAI BERANTAI)
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:

Algoritma dan Struktur Data Tree

Outline Apakah Tree Structure itu ? Binary Tree & implementasinya Tree Traversal Implementasi tree (selain binary tree)

Apakah Tree Structure itu ? Struktur data yang menunjukkan hubungan bertingkat (memiliki hierarkhi) Contoh: direktori/folder pada windows atau linux My Document My Pictures My Music Struktur data Pointer & Structure Linked list Tree

Nama komponen pada Tree 1 root node node 2 3 4 5 6 7 node leaf leaf 8 9 10 leaf leaf leaf

Hubungan antar komponen Hubungan antar elemen: parent-child, father-son, mother-daughter Nama node: nama(angka) yang dipakai untuk membedakan sebuah node dengan node yang lain. Dalam kuliah ini adalah angka yang tertulis dalam lingkaran. Label: nilai yang diingat oleh sebuah node      Tree vs Graph Tree: setiap node kecuali root hanya memiliki sebuah parent Graph: dapat memiliki lebih dari sebuah parent Contoh graph

Hubungan antar komponen sibling:node-node yang memiliki parent yang sama Ancestor dari node x: node yang ditemukan, ketika menyusuri tree ke atas dari node x Descendant dari node x: node yang ditemukan ketika menyusuri tree ke bawah dari node x

Hubungan antar komponen sibling:node-node yang memiliki parent yang sama Ancestor dari node x: node yang ditemukan, ketika menyusuri tree ke atas dari node x Descendant dari node x: node yang ditemukan ketika menyusuri tree ke bawah dari node x

Hubungan antar komponen sibling:node-node yang memiliki parent yang sama Ancestor dari node x: node yang ditemukan, ketika menyusuri tree ke atas dari node x Descendant dari node x: node yang ditemukan ketika menyusuri tree ke bawah dari node x

Level 1 1 2 3 2 3 4 5 6 7 8 9 10

Definisi TREE Sebuah tree didefinisikan sebagai struktur y ang dibentuk secara recursive oleh kedua rule berikut: Sebuah node adalah sebuah tree. Node satu-satunya pada tree ini berfungsi sebagai root maupun leaf. Dari k buah tree T1~Tk , dan masing-masing memiliki root n1~nk.Jika node n adalah parent dari noden1~nk, akan diperoleh sebuah tree baru T yang memiliki root n. Dalam kondisi ini, tree T1~Tkmenjadi sub-tree dari tree T. Root dari sub-tree n1~nkadalah child dari node n . 1 Tree leaf root node

Definisi TREE Sebuah tree didefinisikan sebagai struktur y ang dibentuk secara recursive oleh kedua rule berikut: Sebuah node adalah sebuah tree. Node satu-satunya pada tree ini berfungsi sebagai root maupun leaf. Dari k buah tree T1~Tk , dan masing-masing memiliki root n1~nk.Jika node n adalah parent dari noden1~nk, akan diperoleh sebuah tree baru T yang memiliki root n. Dalam kondisi ini, tree T1~Tkmenjadi sub-tree dari tree T. Root dari sub-tree n1~nkadalah child dari node n . T1 n1 T2 T3 T4 1 2 3 4 5 6 n2 n3 n4 1 1 2 3 1 2 3

Definisi TREE 2. Dari k buah tree T1~Tk , dan masing-masing memiliki root n1~nk.Jika node n adalah parent dari noden1~nk, akan diperoleh sebuah tree baru T yang memiliki root n. Dalam kondisi ini, tree T1~Tkmenjadi sub-tree dari tree T. Root dari sub-tree n1~nkadalah child dari node n . 1 n T n1 T2 T3 T4 T1 2 6 7 8 12 13 n2 3 4 11 14 n3 5 n4 9 10

Ordered vs Unordered tree Antar sibling terdapat urutan “usia” Node yang paling kiri berusia paling tua (sulung), sedangkan node yang paling kanan berusia paling muda (bungsu) Posisi node diatur atas urutan tertentu Unordered tree Antar sibling tidak terdapat urutan tertentu

Outline Apakah Tree Structure itu ? Binary Tree & implementasinya Tree Traversal Implementasi tree (selain binary tree)

Definisi Definisi Binary Tree Sebuah tree yang kosong juga merupakan sebuah binary tree Binary tree harus memenuhi salah satu syarat berikut Tidak memiliki anak Memiliki subtree di sebelah kiri (left subtree) Memiliki subtree di sebelah kanan (right subtree) Memiliki baik left subtree maupun right subtree HATI-HATI DALAM MENGGAMBAR BINARY TREE a a a a a b b b c b Subtree (child) yang dimiliki bukan kiri maupun kanan

Implementasi Binary Tree struct node { struct node *left; struct node *right; mydata label; } left right label a a b c b c

Contoh 10 10 14 18 A 14 18 14 26 38 B H 18 26 38 C 56 78 D 38 26 56 78 100 E F 56 78 100 G 100

Gambarkan implementasi dari binary tree berikut Latihan 1 Gambarkan implementasi dari binary tree berikut 10 A 20 B E 30 C D F H 40 50 60 70 G 80 I J 90 100

Outline Apakah Tree Structure itu ? Binary Tree & implementasinya Tree Traversal Implementasi tree (selain binary tree)

Definisi Tree Traversal Teknik menyusuri tiap node dalam sebuah tree secara sistematis, sehingga semua node dapat dan hanya satu kali saja dikunjungi Ada tiga cara traversal preorder inorder postorder Untuk tree yang kosong, traversal tidak perlu dilakukan

Preorder Visit the root Traverse the left subtree Traverse the right subtree A→B→C→D→E→G→F→H

Implementasi dalam bahasa C struct node { struct node *left; struct node *right; char label; } void preorder(struct node *p) { if (p==NULL) return; jika empty-tree, tidak perlu lakukan apa-apa printf(“visit %c ”, p->label); tampilkan label node yang dikunjungi preorder(p->left); traverse the left subtree preorder(p->right);    traverse the right subtree

Inorder Traverse the left subtree Visit the root Traverse the right subtree C→B→G→E→D→F→A→H

Implementasi dalam bahasa C struct node { struct node *left; struct node *right; char label; } void inorder(struct node *p) { if (p==NULL) return; jika empty-tree, tidak perlu lakukan apa-apa inorder(p->left); traverse the left subtree printf(“visit %c ”, p->label); tampilkan label node yang dikunjungi inorder(p->right);    traverse the right subtree

Postorder Traverse the left subtree Traverse the right subtree Visit the root C→G→E→F→D→B→H→A

Implementasi dalam bahasa C struct node { struct node *left; struct node *right; char label; } void postorder(struct node *p) { if (p==NULL) return; jika empty-tree, tidak perlu lakukan apa-apa postorder(p->left); traverse the left subtree postorder(p->right);    traverse the right subtree printf(“visit %c ”, p->label); tampilkan label node yang dikunjungi

Traverse the left subtree Traverse the right subtree Visit the root Traverse the left subtree Traverse the right subtree Traverse the left subtree Visit the root Traverse the right subtree Visit the root Traverse the left subtree Traverse the right subtree

Latihan-2 Tuliskan hasil preorder, inorder dan postorder traversal untuk binary tree berikut. Visit the root Traverse the left subtree Traverse the right subtree Traverse the left subtree Visit the root Traverse the right subtree Visit the root Traverse the left subtree Traverse the right subtree

Outline Apakah Tree Structure itu ? Binary Tree & implementasinya Tree Traversal Implementasi tree (selain binary tree)

Teknik implementasi tree Binary tree hanya memiliki dua anak: kiri dan kanan. Karena itu implementasinya hanya memerlukan dua buah pointer untuk masing-masing subtree. Untuk implementasi tree yang memiliki sebarang anak, dapat dilakukan dengan dua cara memakai linked-list memakai binary tree

Contoh

Implementasi memakai linked-list 3 23 37 1 23 5 37 35 5 77 87 95 2 77 10 87 15 95 25 10 3 15 4 25 label child 5 35 6 struktur yang Merepresentasikan node              struktur yang merepresentasikan koneksi antar node             

Implementasi memakai binary-tree 1000 1 1001 1001 1002 2 1003 1002 6 1003 1004 1005 3 1004 4 1005 5 label child sibling

Implementasi memakai binary-tree 1 2 6 3 4 5

Implementasi memakai binary-tree Rotasi ke kanan 45° 1 2 3 6 4 5

Latihan-3 Jelaskan implementasi tree berikut a) memakai linked-list b) memakai binary tree