Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Binary Tree Rangga Juniansyah.

Presentasi serupa


Presentasi berjudul: "Binary Tree Rangga Juniansyah."— Transcript presentasi:

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*-* * - + a / c b d e f

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
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
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(
void inOrder(POKOK *T) { if(!PokokKosong(T)) inOrder(T->left); cout<<" "<<T->data; inOrder(T->right); } void postOrder(POKOK *T) postOrder(T->left); postOrder(T->right);

12 //Program utama int main() { POKOK
//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<<"Tampilan secara PostOrder : "; postOrder(kelapa); getch(); return 0; }

14 Tampilan Program M L E I O D

15 Latihan Seperti apa hasil program dibawah ini…???? M L E I O D B A U


Download ppt "Binary Tree Rangga Juniansyah."

Presentasi serupa


Iklan oleh Google