1 / 15

Binary Tree

Binary Tree. Rangga Juniansyah. Pengantar. Tree merupakan salah satu bentuk struktur data tidak linear yang menggambarkan hubungan yang bersifat hierarkis (hubungan one to many) antara elemen-elemen. Tree bisa didefinisikan sebagai kumpulan simpul/node dengan elemen khusus yang disebut Root.

kiefer
Download Presentation

Binary Tree

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Binary Tree Rangga Juniansyah

  2. Pengantar • Tree merupakan salah satu bentuk struktur data tidak linear yang menggambarkan hubungan yang bersifat hierarkis (hubungan one to many) antara elemen-elemen. • Tree bisa didefinisikan sebagai kumpulan simpul/node dengan elemen khusus yang disebut Root.

  3. Binary Tree • Binary Tree (Pohon Biner) yaitu pohon yang setiap simpul/node-nya paling banyak mempunyai dua buah subpohon. • Contoh implementasi : untuk membuat pohon silsilah keluarga, ungkapan aritmatika yang setiap operatornya dipasang sebagai simpul pencabangan dan operand-operandnya sebagai subpohon, dll. • Binary tree dapat diimplementasikan dalam C++ dengan menggunakan double linkedlist.

  4. Kunjungan Pohon • Ada 3 urutan dasar yang dapat digunakan untuk mengunjungi pohon, yaitu : • PreOrder : cetak isi node yang dikunjungi, kunjungi Left Child, kunjungi Right Child. • InOrder : kunjungi Left Child, cetak isi node yang dikunjungi, kunjungi Right Child. • PostOrder : kunjungi Left Child, kunjungi Right Child cetak isi node yang dikunjungi.

  5. Penempatan Simpul • Simpul yang berisi informasi yang nilainya lebih besar dari simpul atas (root) akan ditempatkan sebagai cabang kanan, jika lebih kecil dari simpul atas akan ditempatkan sebagai cabang kiri.

  6. Contoh Pohon Biner Ungkapan Aritmatika • Hasil : • PreOrder : *+a/bc-d*ef • InOrder : a+b/c*d-e*f • PostOrder : abc/+def*-* * - + d * a / f e c b

  7. Dari hasil di atas dapat disimpulkan bahwa : • Kunjungan secara PreOrder akan menghasilkan notasi Prefix • Kunjungan secara InOrder akan menghasilkan notasi Infix • Kunjungan secara PostOrder akan menghasilkan notasi Postfix

  8. Contoh Program #include<iostream.h> #include<conio.h> #include<malloc.h> #define nil NULL struct nod { struct nod *left; char data; struct nod *right; }; typedef struct nod NOD; typedef NOD POKOK;

  9. NOD *NodBaru(char item) { NOD *n; n=(NOD *)malloc(sizeof(NOD)); if(n != NULL) { n->data=item; n->left=NULL; n->right=NULL; } return n; } void BinaPokok(POKOK **T) { *T=NULL; }

  10. bool PokokKosong(POKOK *T) { return ((bool)(T==NULL)); } void TambahNod(NOD **p, char item) { NOD *n; n=NodBaru(item); *p=n; } void preOrder(POKOK *T) { if(!PokokKosong(T)) { cout<<" "<<T->data; preOrder(T->left); preOrder(T->right); } }

  11. void inOrder(POKOK *T) { if(!PokokKosong(T)) { inOrder(T->left); cout<<" "<<T->data; inOrder(T->right); } } void postOrder(POKOK *T) { if(!PokokKosong(T)) { postOrder(T->left); postOrder(T->right); cout<<" "<<T->data; } }

  12. //Program utama int main() { POKOK *kelapa; char buah; BinaPokok(&kelapa); TambahNod(&kelapa, buah='M'); TambahNod(&kelapa->left, buah='E'); TambahNod(&kelapa->left->right, buah='I'); TambahNod(&kelapa->right, buah='L'); TambahNod(&kelapa->right->right, buah='O'); TambahNod(&kelapa->right->right->left, buah='D'); cout<<"Tampilan secara PreOrder : "; preOrder(kelapa);

  13. cout<<endl; cout<<"Tampilan secara InOrder : "; inOrder(kelapa); cout<<endl; cout<<"Tampilan secara PostOrder : "; postOrder(kelapa); cout<<endl; cout<<endl; getch(); return 0; }

  14. Tampilan Program M L E O I D

  15. Latihan Sepertiapahasil program dibawahini…???? M L E O I A B D U

More Related