CONTOH PROGRAM BINARY TREE PADA HURUF
#include<iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include<iomanip>
using namespace std;
typedef struct tree *pohon;
// Deklarasi dari tree dengan menggunakan linked list
struct tree{
char info;
pohon kiri;
pohon kanan;
};
// Fungsi untuk membuat simpul yang pertama
pohon baru(char hrf)
{
pohon br;
br=(pohon)malloc(sizeof(struct tree));
br->info=hrf;
br->kiri=NULL;
br->kanan=NULL;
return (br);
}
//Fungsi untuk menyisipkan simpul pada tree yang sudah dibangun
void sisip (pohon ph, pohon sp)
{
pohon P,Q;
P = ph;
Q = ph;
while((sp->info != ph->info)&&(Q!=NULL))
{
P = Q;
if (sp->info < P->info)
Q = P->kiri;
else
Q = P->kanan;
}
if(sp->info == P->info)
cout<<"Sudah ada";
else
if(sp->info < P->info)
P->kiri=sp;
else
P->kanan=sp;
}
//Fungsi-fungsi untuk metode traversal secara rekurs
void inorder(pohon ph)
{
if (ph != NULL)
{
inorder(ph->kiri);
cout<<" "<<ph->info<<" ";
inorder(ph->kanan);
}
}
void preorder(pohon ph)
{
if (ph != NULL)
{
cout<<" "<<ph->info<<" ";
preorder(ph->kiri);
preorder(ph->kanan);
}
}
void postorder(pohon ph)
{
if (ph != NULL)
{
postorder(ph->kiri);
postorder(ph->kanan);
cout<<" "<<ph->info<<" ";
}
}
main()
{
int j=0;char input,jawab[2];
pohon br, ssp;
while(1)
{
cout<<endl;
cout<<"Ketikkan huruf :"; scanf("%c",&input);
fflush(stdin);
if (j==0) br = baru(input);
else
{
ssp = baru(input);
sisip(br,ssp);
}
cout<<"Ada data lagi(y/t):"; scanf("%s",&jawab);
fflush(stdin);
if((strcmp(jawab,"Y")==0)||(strcmp(jawab,"y")==0))
{
j++;continue;
}
else
if((strcmp(jawab,"T")==0)||(strcmp(jawab,"t")==0))
break;
}
cout<<endl;
cout<<"Inorder\t\t : "; inorder(br); cout<<"\n";
cout<<"Pre-order\t : "; preorder(br); cout<<"\n";
cout<<"Post-order\t : "; postorder(br); cout<<"\n";
}
HASIL OUTPUT PROGRAM DI ATAS
|
Screenshoot output program binary tree |
ALGORITMA PROGRAM DI ATAS
Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis. Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Teknik penyajian algoritma dibagi menjadi dua yaitu pseudocode (bentuk tulisan) dan flowchart (bentuk gambar).
|
Pseudocode program binary tree |
Pseudocode merupakan algoritma yang berbentuk tulisan. Dari pseudocode di atas dapat dibaca yang dimulai dengan start sebagai awal dari suatu program. Lalu menginputkan data dengan mengetik huruf sehingga akan dilanjutkan pilihan "Ada data lagi (y/ t)". Pilihan Ya atau tidak tersebut merupakan jawaban yang akan dieksekusi. Sehingga akan menghasilkan output yang terdiri dari Inorder, Pre-order dan Post-order. Kemudian program akan keluar.
|
Flowchart program binary tree |
Flowchart merupakan salah satu bentuk algoritma yang berupa gambar. Dari flowchart di atas dapat dibaca yang di mulai dari atas yaitu Start. Lalu menginput data dengan mengetikkan huruf. Sehingga akan muncul pilihan "Ada data lagi (ya/tidak)", jika pilih "ya" maka akan kembali penginputan data, pengeksekusian ini akan dilakukan sampai pengguna memilih "tidak". Maka program akan keluar.
Referensi :
http://arna.lecturer.pens.ac.id/Praktikum_ASD/16%20Tree.pdf
0 komentar:
Posting Komentar