Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
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…???? A C B E G N F D H L
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.