Anda di halaman 1dari 3

Huffman Coding

#include<iostream>
using namespace std;
#include<string>
#include<stdio.h>
#include<conio.h>

struct obj
{
float f,f1,f2;
string c,c1,c2;
};
void main()
{
int b=5,c=6,t=1;
obj o[5];
float a[6],r[6];
string s[6];
for(int i=0;i<6;i++)
{
cout<<"Enter Probability: ";
cin>>a[i];
}
for(int i=0;i<6;i++)
{
r[i]=a[i];
}
for(int k=0;k<5;k++)
{
for(int i=0;i<c;i++)
{
for(int j=0;j<b;j++)
{
if(a[j]<a[j+1])
{
float temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
if(c>1)
{
o[k].f1=a[c-2];
o[k].f2=a[c-1];
a[c-2]=a[c-1]+a[c-2];
o[k].f=a[c-2];
c--;
b=c-1;
}
else
break;
}
o[4].c1="0";
o[4].c2="1";
int m=4,l,n;
while(m>=0)
{
l=0;n=0;
while(o[m].f1!=o[l].f)
{
if(l<5)
l++;
else break;
}
if(l<4)
{
o[l].c=o[m].c1;
o[l].c1=o[l].c2=o[l].c;
o[l].c1.append("0");
for(int i=0;i<6;i++)
{
if(o[l].f1==r[i])
{
s[i]=o[l].c1;
}
}
o[l].c2.append("1");
for(int i=0;i<6;i++)
{
if(o[l].f2==r[i])
{
s[i]=o[l].c2;
}
}
}
while(o[m].f2!=o[n].f)
{
if(n<5)
n++;
else break;
}
if(n<4)
{
o[n].c=o[m].c2;
o[n].c1=o[n].c2=o[n].c;
o[n].c1.append("0");
for(int i=0;i<6;i++)
{
if(o[n].f1==r[i])
{
s[i]=o[n].c1;
}
}
o[n].c2.append("1");
for(int i=0;i<6;i++)
{
if(o[n].f2==r[i])
{
s[i]=o[n].c2;
}
}
}
m--;
}
for(int i=0;i<6;i++)
{
cout<<"The code for "<<r[i]<<" is"<<" "<<s[i]<<"\n";
}
cout<<endl;
}

Anda mungkin juga menyukai