Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 5

//WAP to implement Huffman Coding Algorithm

#include<conio.h>
#include<stdio.h>
#include<process.h>

void main()
{
int i,j;
float temp,pr[3],p[3],sum=0,sm;
char a[3],*ar[3]={"c[0]","c[1]","c[2]"},*tp;
clrscr();
printf("\n\n Enter 3 characters : ");
for(i=0;i<3;i++)
{
scanf("\n%c",&a[i]);
}
printf("\n\n Enter their probablities : ");
for(i=0;i<3;i++)
{
scanf("\n%f",&pr[i]);
sum = sum + pr[i];
}
if(sum!=1)
{
printf("\n\n Sum of probablities must be equal to 1...");

printf("\nPress any key to exit. ");


getch();
exit(1);
}

printf("\n\nEntered data is ");


printf("\n Character\t Probability\t Codeword\n");
for(i=0;i<3;i++)
{
printf("\n\t%c\t%f\t%s",a[i],pr[i],ar[i]);
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
if(pr[i]>pr[j]&&pr[i]!=pr[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
temp = pr[i];
pr[i] = pr[j];
pr[j] = temp;
tp = ar[i];
ar[i] = ar[j];
ar[j] = tp;

}
}
}
printf("\n\nEntered data is ");
printf("\n Character\t Probability\t Codeword\n");
for(i=0;i<3;i++)
{
printf("\n\t%c\t%f\t%s",a[i],pr[i],ar[i]);
}
ar[1]="0";
ar[2]="1";
/* for(i=0;i<3;i++)
{
p[i] = pr [i];
}*/
sm = pr[1]+pr[2];
if(sm>pr[0])
{
printf("\n\nNow the sorted data is ");
printf("\n Character\t Probability\t Codeword\n");
printf("\n\t%c\t%f\t%s",'X',sm,"c[X]");
printf("\n\t%c\t%f\t%s",a[0],pr[0],ar[0]);
ar[0]="1";
ar[1]="00";
ar[2]="01";
printf("\n\nNow the codewords are ");

printf("\n Character\t Probability\t Codeword\n");


for(i=0;i<3;i++)
{
printf("\n\t%c\t%f\t%s",a[i],pr[i],ar[i]);
}
}
else
{
printf("\n\nNow the sorted data is ");
printf("\n Character\t Probability\t Codeword\n");
printf("\n\t%c\t%f\t%s",a[0],pr[0],ar[0]);
printf("\n\t%c\t%f\t%s",'X',sm,"c[X]");

ar[0]="0";
ar[1]="10";
ar[2]="11";
printf("\n\nNow the codewords are ");
printf("\n Character\t Probability\t Codeword\n");
for(i=0;i<3;i++)
{
printf("\n\t%c\t%f\t%s",a[i],pr[i],ar[i]);
}
}
getch();
}

You might also like