Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Tree.

Presentasi serupa


Presentasi berjudul: "Tree."— Transcript presentasi:

1 Tree

2 Binary Tree Tree yang punya anak tak lebih dari 2, yaitu kiri atau kanan

3 Binary Search Tree Yaitu binary tree yang data anak kiri < data root < data anak kanan

4 Representasi Array

5 Representasi Linked List

6 Insert data ke BST Algoritma
Telusuri tree, cari tempat yang cocok untuk data yang mau dimasukkan Ketika sampai di tempat yang cocok, data yang mau dimasukkan dibandingkan dengan parent, kalau lebih kecil maka taruh di sisi kiri, kalau lebih besar taruh di sisi kanan

7 Insert data ke BST Taruh dimana? 55

8 Insert data ke BST Taruh dimana? 20 55

9 Insert data ke BST 55 20

10 Traversal / Kunjungan Traversal : Mengunjungi setiap node pada tree
Ada tiga cara mengunjungi node-node pada suatu tree : Preorder : root, kiri, kanan Inorder : kiri, root, kanan Postorder : kiri, kanan, root

11 Preorder : root, kiri, kanan
B D C E F G A B D C E F G H A B D E C F G A B D G H C E F

12 Buat program untuk menelusuri tree secara preorder dan postorder
Inorder : kiri, root, kanan void inorder(struct tnode *p) { if(p != NULL) inorder(p->lchild); printf("%d\t",p->data); inorder(p->rchild); } A B D C E F G H B G D H A E C F Buat program untuk menelusuri tree secara preorder dan postorder

13 Buat program untuk menelusuri tree secara preorder dan postorder

14 Postorder : kiri, kanan, root
B D C E F G H G H D B E F C A

15 Traversal Z,A,Q,P,Y,X,C,B = Preorder root, kiri, kanan
Q,A,Z,Y,P,C,X,B = Inorder kiri, root, kanan Z,A,P,X,B,C,Y,Q = postorder kiri, kanan, root

16 70 60 85 40 65 20 Inorder : kiri root kanan 20 40 60 65 70 85
void inorder(struct tnode *p) { if(p != NULL) inorder(p->lchild); printf("%d\t",p->data); inorder(p->rchild); } 70 60 85 40 65 20 Inorder : kiri root kanan

17 70 60 85 40 65 20 Preorder : root, kiri, kanan 70 60 40 20 65 85
void preorder(struct tnode *p) { if(p != NULL) printf("%d\t",p->data); preorder(p->lchild); preorder(p->rchild); } 70 60 85 40 65 20 Preorder : root, kiri, kanan

18 70 60 85 40 65 20 Postorder : kiri, kanan, root 20 40 65 60 85 70
void postorder(struct node *p) { if(p != NULL) { postorder(p->lchild); postorder(p->rchild); printf("%d\t",p->data); } 70 60 85 40 65 20 Postorder : kiri, kanan, root

19 Menghitung node pada tree
int count(struct tnode *p) { if( p == NULL) return(0); else if( p->lchild == NULL && p->rchild == NULL) return(1); else return(1 + (count(p->lchild) + count(p->rchild))); } 70 60 85 40 65 20


Download ppt "Tree."

Presentasi serupa


Iklan oleh Google