Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Algoritma dan Struktur Data

Presentasi serupa


Presentasi berjudul: "Algoritma dan Struktur Data"— Transcript presentasi:

1 Algoritma dan Struktur Data
Tree

2 Oleh: Prasiwi Meilida B (115060801111032)
Syela Ukmala ( ) Dian Malasari ( ) TIF - C 17/09/2018

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

4 Apakah Tree Structure itu ?
Struktur data yang menunjukkan hubungan bertingkat (memiliki hierarkhi) Contoh: silsilah keluarga

5 Nama komponen pada Tree
Node root adalah node khusus yang tercipta pertama kalinya. Node-node lain di bawah node root saling terhubung satu sama lain dan disebut subtree 1 3 7 10 2 4 5 6 8 9 node root leaf

6 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 hal 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

7 Hubungan antar komponen
sibling:node-node yang memiliki parent yang sama

8 Hubungan antar komponen
Ancestor dari node x: node yang ditemukan, ketika menyusuri tree ke atas dari node x

9 Hubungan antar komponen
Descendant dari node x: node yang ditemukan ketika menyusuri tree ke bawah dari node x

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

11 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. 1 Tree leaf root node

12 2. Dari k buah tree T1~Tk , dan masing-masing memiliki root n1~nk
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 . T1 n1 T2 n2 1 2 3 T3 n3 n4 T4 2 6 7 8 12 13 T1 n1 T2 n2 5 T3 n3 n4 T4 n T 4 11 14 9 10 3 1

13 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

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

15 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

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

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

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

19 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

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

21 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

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

23 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

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

25 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

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

27 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

28 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             

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

30 Implementasi memakai binary-tree
1 2 6 3 4 5

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


Download ppt "Algoritma dan Struktur Data"

Presentasi serupa


Iklan oleh Google