P. 1
Materi 10 - Binary Tree

Materi 10 - Binary Tree

4.6

|Views: 4,272|Likes:
Dipublikasikan oleh Euis Marlina

More info:

Published by: Euis Marlina on Dec 29, 2008
Hak Cipta:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PPT, PDF, TXT or read online from Scribd
See more
See less

06/04/2013

pdf

text

original

Binary Tree

Euis Marlina, S.Kom Email : euismarlina@gmail.com http://euismarlina.edublogs.org HP : 08179424319

Mata Kuliah Struktur Data - 2008

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.

Mata Kuliah Struktur Data - 2008

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 operandoperandnya sebagai subpohon, dll.  Binary tree dapat diimplementasikan dalam C++ dengan menggunakan double linkedlist.

Mata Kuliah Struktur Data - 2008

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.

Mata Kuliah Struktur Data - 2008

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.

Mata Kuliah Struktur Data - 2008

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

*

Mata Kuliah Struktur Data - 2008

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

Mata Kuliah Struktur Data - 2008

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;

Mata Kuliah Struktur Data - 2008

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; }

Mata Kuliah Struktur Data - 2008

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); } }
Mata Kuliah Struktur Data - 2008

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; } }
Mata Kuliah Struktur Data - 2008

//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);

Mata Kuliah Struktur Data - 2008

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

Mata Kuliah Struktur Data - 2008

Tampilan Program
M E L

O I D

Mata Kuliah Struktur Data - 2008

You're Reading a Free Preview

Mengunduh
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->