data structure tree -...

20
Data Structure Tree Kusnawi,S.Kom, M.Eng

Upload: ledang

Post on 28-Apr-2019

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Data Structure Tree - E-Learningelearning.amikom.ac.id/index.php/download/materi/190302112-ST015-68... · „Tree dapat dibuat dengan menggunakan linked list secara ... disesuaikan

Data Structure ” Tree ”

Kusnawi,S.Kom, M.Eng

Page 2: Data Structure Tree - E-Learningelearning.amikom.ac.id/index.php/download/materi/190302112-ST015-68... · „Tree dapat dibuat dengan menggunakan linked list secara ... disesuaikan

Data Structure – Non Linier

„ Struktur Pohon ( Tree ) „ Graph

Page 3: Data Structure Tree - E-Learningelearning.amikom.ac.id/index.php/download/materi/190302112-ST015-68... · „Tree dapat dibuat dengan menggunakan linked list secara ... disesuaikan

Konsep dasar Trees „ Secara sederhana tree dapat didefinisikan sebagai kumpulan elemen

yang salah satu elemennya disebut root, dan sisa elemen yang lain (yang disebut node)

„ Terpecah menjadi sejumlah himpunan yang saling tidak berhubungan satu sama lain (disjoint), yang disebut dengan subtree.

„ Node yang tidak mempunyai cabang disebut terminal node atau leaf, sedangkan node yang mempunyai cabang disebut branch node.

„ Jumlah node pada sebuah tree merupakan bilangan terbatas (finite number).

Page 4: Data Structure Tree - E-Learningelearning.amikom.ac.id/index.php/download/materi/190302112-ST015-68... · „Tree dapat dibuat dengan menggunakan linked list secara ... disesuaikan
Page 5: Data Structure Tree - E-Learningelearning.amikom.ac.id/index.php/download/materi/190302112-ST015-68... · „Tree dapat dibuat dengan menggunakan linked list secara ... disesuaikan

Examples of trees: „ Directory tree „ Family tree „ Company organization chart „ Table of contents „ etc.

Page 6: Data Structure Tree - E-Learningelearning.amikom.ac.id/index.php/download/materi/190302112-ST015-68... · „Tree dapat dibuat dengan menggunakan linked list secara ... disesuaikan

Bentuk Trees

Page 7: Data Structure Tree - E-Learningelearning.amikom.ac.id/index.php/download/materi/190302112-ST015-68... · „Tree dapat dibuat dengan menggunakan linked list secara ... disesuaikan

Level Trees

Page 8: Data Structure Tree - E-Learningelearning.amikom.ac.id/index.php/download/materi/190302112-ST015-68... · „Tree dapat dibuat dengan menggunakan linked list secara ... disesuaikan

Binary Tree - Suatu tree dengan syarat bahwa tiap node hanya boleh memiliki

maksimal dua subtree dan kedua subtree tersebut harus terpisah. - Tiap node dalam binary tree hanya boleh memiliki paling banyak dua

child.

Page 9: Data Structure Tree - E-Learningelearning.amikom.ac.id/index.php/download/materi/190302112-ST015-68... · „Tree dapat dibuat dengan menggunakan linked list secara ... disesuaikan

IMPLEMENTASI PROGRAM TREE

„ Tree dapat dibuat dengan menggunakan linked list secara rekursif. „ Linked list yang digunakan adalah double linked list. „ Data yang pertama kali masuk akan menjadi node root. „ Data yang lebih kecil dari data node root akan masuk dan

menempati node kiri dari node root, sedangkan jika lebih besar dari data node root, akan masuk dan menempati node di sebelah kanan node root.

„ Catatan : isi node bisa disesuaikan dengan permasalahan(kasus)

Page 10: Data Structure Tree - E-Learningelearning.amikom.ac.id/index.php/download/materi/190302112-ST015-68... · „Tree dapat dibuat dengan menggunakan linked list secara ... disesuaikan

Binary Tree dan Representasi dalam Linked List

Page 11: Data Structure Tree - E-Learningelearning.amikom.ac.id/index.php/download/materi/190302112-ST015-68... · „Tree dapat dibuat dengan menggunakan linked list secara ... disesuaikan

Pendeklarasian

typedef struct Tree { int data; Tree *left; Tree *right; }

Page 12: Data Structure Tree - E-Learningelearning.amikom.ac.id/index.php/download/materi/190302112-ST015-68... · „Tree dapat dibuat dengan menggunakan linked list secara ... disesuaikan

Traversal pada Binary Tree Teknik menyusuri tiap node dalam sebuah tree

secara sistematis, sehingga semua node dapat dan hanya satu kali saja dikunjungi. Dengan melakukan kunjungan secara lengkap,

maka akan didapatkan urutan informasi secara linier yang tersimpan dalam sebuah binary tree. Terdapat tiga cara untuk melakukan kunjungan itu,

yaitu: Traversal preorder (depth first order), Traversal inorder (symmetric order) dan Traversal postorder

Page 13: Data Structure Tree - E-Learningelearning.amikom.ac.id/index.php/download/materi/190302112-ST015-68... · „Tree dapat dibuat dengan menggunakan linked list secara ... disesuaikan

Traversal preorder (depth first order)

„ Dilaksanakan dengan jalan mencetak isi node yang dikunjungi lalu melakukan kunjungan ke subtree kiri dan selanjutnya ke subtree kanan.

Page 14: Data Structure Tree - E-Learningelearning.amikom.ac.id/index.php/download/materi/190302112-ST015-68... · „Tree dapat dibuat dengan menggunakan linked list secara ... disesuaikan

Traversal inorder (symmetric order)

„ Dilaksanakan dengan jalan melakukan kunjungan ke subtree kiri, mencetak isi node yang dikunjungi, lalu melakukan kunjungan ke subtree kanan.

Page 15: Data Structure Tree - E-Learningelearning.amikom.ac.id/index.php/download/materi/190302112-ST015-68... · „Tree dapat dibuat dengan menggunakan linked list secara ... disesuaikan

Traversal postorder „ Dilaksanakan dengan jalan melakukan kunjungan ke subtree kiri, lalu

ke subtree kanan, dan selanjutnya mencetak isi node yang dikunjungi.

Page 16: Data Structure Tree - E-Learningelearning.amikom.ac.id/index.php/download/materi/190302112-ST015-68... · „Tree dapat dibuat dengan menggunakan linked list secara ... disesuaikan

Contoh

PreOrder Hasil kunjungan: “ABDGCEHIF” Procedure: void preOrder(Tree *root){ if(root != NULL){ printf("%d ",root->data); preOrder(root->left); preOrder(root->right); }}

Page 17: Data Structure Tree - E-Learningelearning.amikom.ac.id/index.php/download/materi/190302112-ST015-68... · „Tree dapat dibuat dengan menggunakan linked list secara ... disesuaikan

InOrder Hasil kunjungan: “DGBAHEICF” Procedure:

void inOrder(Tree *root){ if(root != NULL){ inOrder(root->left); printf("%d ",root->data); inOrder(root->right);} }

Page 18: Data Structure Tree - E-Learningelearning.amikom.ac.id/index.php/download/materi/190302112-ST015-68... · „Tree dapat dibuat dengan menggunakan linked list secara ... disesuaikan

PostOrder Hasil kunjungan: “GDBHIEFCA” Procedure:

void postOrder(Tree *root){ if(root != NULL){ postOrder(root->left); postOrder(root->right); printf("%d ",root->data); } }

Page 19: Data Structure Tree - E-Learningelearning.amikom.ac.id/index.php/download/materi/190302112-ST015-68... · „Tree dapat dibuat dengan menggunakan linked list secara ... disesuaikan

Contoh Traversal InOrder Urutan penulisan ekpresi Aritmatik

Page 20: Data Structure Tree - E-Learningelearning.amikom.ac.id/index.php/download/materi/190302112-ST015-68... · „Tree dapat dibuat dengan menggunakan linked list secara ... disesuaikan

DEMO