13
13
q1]
#include<stdio.h>
#include<limits.h>
int MatrixChainOrder(int p[],int i,int j)
{
if(i ==j)
return 0;
int k;
int min=INT_MAX;
int count;
for(k=i;k<j;k++)
{
count=MatrixChainOrder(p,i,k) +MatrixChainOrder(p,k+1,j) +p[i-1] *p[k]
*p[j];
if(count <min)
min=count;
}
return min;
}
int main()
{
int i,n;
/*int arr[10];
return 0;
}
_____________________________________________________
q2]
#include <stdio.h>
#include <limits.h>
if (j < i)
return 0;
if (j == i)
return freq[i];
int fsum = sum(freq, i, j);
int main()
{
int keys[] = {10, 12, 20};
int freq[] = {34, 8, 50};
int n = sizeof(keys)/sizeof(keys[0]);
printf("Cost of Optimal BST is %d ",
optimalSearchTree(keys, freq, n));
return 0;
}