Contoh Program Tree ( Pohon )
- ..
#include<iostream.h>
#include<conio.h>
struct tree
{
int data;
tree *sebelahkiri;
tree *sebelahkanan;
}*tampung,*sa;
void ceksebelahkanan();
void ceksebelahkiri();
void search();
int tambahdata;
tree *node;
void main()
{
clrscr();
node=new tree;
cout<<" masukkan akar : ";
cin>>node->data;
tampung=node;
sa=tampung;
node->sebelahkiri=NULL;
node->sebelahkanan=NULL;
cout<<" beri anak : ";
cin>>tambahdata;
search();
while(tambahdata!=0)
{
if(tambahdata>tampung->data)
ceksebelahkanan();
else
ceksebelahkiri();
cout<<" beri anak : ";
cin>>tambahdata;
search();
tampung=node;
}
getch();
}
void ceksebelahkanan()
{
if(tampung->sebelahkanan==NULL)
{
cout<<" "<<tambahdata<<" ini adalah anak dari "<<sa->data<<endl;
tampung->sebelahkanan=new tree;
tampung=tampung->sebelahkanan;
tampung->data=tambahdata;
tampung->sebelahkiri=NULL;
tampung->sebelahkanan=NULL;
sa=node;
}
else
{
if(tambahdata>tampung->data)
{
tampung=tampung->sebelahkanan;
sa=tampung;
if(tambahdata>tampung->data)
ceksebelahkanan();
else
ceksebelahkiri();
}
else
{
tampung=tampung->sebelahkiri;
sa=tampung;
ceksebelahkiri();
}
}
}
void ceksebelahkiri()
{
if(tampung->sebelahkiri==NULL)
{
cout<<" "<<tambahdata<<" ini adalah anak dari "<<sa->data<<endl;
tampung->sebelahkiri=new tree;
tampung=tampung->sebelahkiri;
tampung->data=tambahdata;
tampung->sebelahkanan=NULL;
tampung->sebelahkiri=NULL;
sa=node;
}
else{
if(tambahdata<tampung->data)
{
tampung=tampung->sebelahkiri;
sa=tampung;
if(tambahdata>tampung->data)
ceksebelahkanan();
else
ceksebelahkiri();
}
else
{
tampung=tampung->sebelahkanan;
sa=tampung;
ceksebelahkanan();}
}
}
void search()
{
tampung=node;
while(tampung!=NULL)
{
if(tambahdata==tampung->data)
{
cout<<"Tidak boleh sama";
cout<<"\ntambah anak :";
cin>>tambahdata;
search();
break;
}
else
{
if(tambahdata>tampung->data)
tampung=tampung->sebelahkanan;
else
tampung=tampung->sebelahkiri;
}
}
tampung=node;
}
:. Selamat Mencoba .: