Sie sind auf Seite 1von 3

#include <iostream.

h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
struct tree_node
{
tree_node* left;
tree_node* right;
int data;
};
tree_node* root;
bool isEmpty()
{return root==NULL;}
void insert(int d)
{
tree_node* t = new tree_node;
tree_node* parent;
t->data = d;
t->left = NULL;
t->right = NULL;
parent = NULL;
if(isEmpty())root = t;
else
{
tree_node* curr;
curr = root;
while(curr!=NULL)
{
parent = curr;
if(t->data > curr->data) curr = curr->right;
else curr = curr->left;
}
if(t->data < parent->data)
parent->left = t;
else
parent->right = t;
}
}
int count(tree_node* p)
{
if(p==NULL)return 0;
return count(p->left) + count(p->right) + 1;
}
int height(tree_node* p)
{
if(p==NULL)return 0;
int u = height(p->left),v = height(p->right);
if(u > v)
return u+1;
else
return v+1;
}
void cari_terbesar(tree_node* p)
{
if(p==NULL)
return;
else
if(p->right==NULL)
{
cout<<" "<<p->data<<" ";
return;
}
else
{
cari_terbesar(p->right);
return;
}
}
void cari_terkecil(tree_node* p)
{
if(p==NULL)
return;
else
if(p->left==NULL)
{
cout<<" "<<p->data<<" ";
return;
}
else
{
cari_terkecil(p->left);
return;
}
}
void leaf(tree_node* p)
{
if(p->left==NULL && p->right==NULL)
{
cout<<" "<<p->data<<" ";
}
else
{
if (p->left!=NULL)
{
leaf(p->left);
}
if (p->right!=NULL)
{
leaf(p->right);
}
}
}

int main()
{
root=NULL;
int ch,tmp;
while(1)
{
system("cls");
cout<<endl;
cout<<"Menu Utama Operasi Pohon Biner"<<endl;
cout<<"--------------------"<<endl;
cout<<"1. Insert/Tambah Data"<<endl;
cout<<"2. Menghitung Jumlah Node"<<endl;
cout<<"3. Menampilkan Semua Daun (Leaf)"<<endl;
cout<<"4. Mencari Data Terkecil (Minimum)"<<endl;
cout<<"5. Mencari Data Terbesar (Maksimum)"<<endl;
cout<<"6. Exit"<<endl;
cout<<"Pilihan Anda : ";
cin>>ch;
cout<<endl;
switch(ch)
{
case 1 : cout<<"Masukan Data : ";
cin>>tmp;
insert(tmp);
break;
case 2 : cout<<"Menghitung Jumlah Node"<<endl;
cout<<"------------------"<<endl;
cout<<"Jumlah Node = "<<count(root);
getch();
break;
case 3 : cout<<"Menampilkan Semua Daun(Leaf)"<<endl;
cout<<"------------------"<<endl;
cout<<"Daun = "<<endl;
leaf(root);
getch();
break;
case 4 : cout<<"Mencari Data Terkecil"<<endl;
cout<<"------------------"<<endl;
cout<<"Data Terkecil Adalah = "<<endl;
cari_terkecil(root);
getch();
break;
case 5 : cout<<"Mecari Data Terbesar"<<endl;
cout<<"------------------"<<endl;
cout<<"Data Terbesar Adalah = "<<endl;
cari_terbesar(root);
getch();
break;
case 6 : return 0;
break;
default: cout<<"Pilihan yang Anda Masukkan salah!"<<endl;
getch();
break;
}
}
}

Das könnte Ihnen auch gefallen