#include
#include
#define infinity 1000
class obst
{
int kmin,k,n,i,d,s,j,root[10][10];
float sum,table[10][10],prob[10],min;
public:
obst()
{
for(i=1;i<=n;i++)
for(j=0;j<=n;j++)
{
table[i][j]=float(0);
root[i][i]=float(0);
}
}
void getdata();
void obst1();
void display();
};
void obst::getdata()
{
cout<<"\nEnter the number of objects : ";
cin>>n;
cout<<"\nEnter the probability : ";
for(i=1;i<=n;i++)
cin>>prob[i];
}
void obst::obst1()
{
for(i=1;i<=n;i++)
{
table[i][i]=prob[i];
root[i][i]=float(i);
}
table[n+1][n]=float(0);
for(d=1;d
for(i=1;i<=n-d;i++)
{
sum=float(0);
j=i+d;
min=infinity;
for(k=i;k<=j;k++)
{
if ((table[i][k-1]+table[k+1][j])
min=table[i][k-1]+table[k+1][j];
kmin=k;
}
}
root[i][j]=kmin;
for(s=i;s<=j;s++)
sum=sum+prob[s];
table[i][j]=sum+min;
}
}
}
void obst::display()
{
cout<<"\n\tMAIN TABLE\n";
for(i=1;i<=n;i++)
{
for(j=0;j<=n;j++)
{
if(j!=0)
cout<<"\t"<
cout<<"0.0";
}
cout<
cout<<"\n\t\tROOT TABLE\n";
for(i=1;i<=n;i++)
{
for(j=0;j<=n;j++)
{
if(j!=0)
cout<<"\t"<
cout<<"0";
}
cout<
}
void main()
{
clrscr();
obst ob;
ob.getdata();
ob.obst1();
ob.display();
getch();
}
No comments:
Post a Comment