Hiển thị các bài đăng có nhãn mua thu. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn mua thu. Hiển thị tất cả bài đăng
Thứ Tư, 10 tháng 12, 2008
Thứ Hai, 24 tháng 11, 2008
Cai dat thuat Huffma =c++
#include
#include
#include
#include
#define MAXBITS 32
#define MAXNODES 512
#define MAXSYMBS 256
#define MAXNAME 32
typedef struct {
char alph;
int freq;
char code[MAXBITS];
}hlist;
typedef struct{
char alph;
int lchild,rchild,parent;
int freq;
int isleft;
}hnode;
void general(void);
void make_table(void);
void quit();
hnode node[256],temp1;
hlist a[256],temp;
char left[2]="0",right[2]="1";
int t1,t2;
int root;
int i,j,k,n,f,line=1,len;
char s[256],s1[80];
char ch,filein[MAXNAME],fileout[MAXNAME],filekey[MAXNAME];
FILE *fin,*fout,*fkey;
FILE *ff;
//Giai ma file:
de_file()
{
clrscr();
//Doc file chua thong tin ma hoa
line++;
gotoxy(2,line);
cputs("Enter a filename for decoding:");
gets(filein);
line++;
gotoxy(2,line);
cputs("Enter the name of keyfile:");
gets(filekey);
line++;
gotoxy(2,line);
cputs("Name of decoded file:");
gets(fileout);
fkey=fopen(filekey,"rt");
if(ferror(fkey)!=0)
{
gotoxy(2,22);
cputs("Error!.....");
quit();
return;
}
fscanf(fkey,"%d\n",&n);
for(i=0;ia[i].freq)
{
temp=a[j];
a[j]=a[i];
a[i]=temp;
}
for(i=0;ii;j--)
{
node[j]=node[j-1];
if((node[j-1].lchild)!=-1)
{
node[node[j-1].lchild].parent=j;
node[node[j-1].rchild].parent=j;
}
}
node[i]=temp1;
node[temp1.lchild].parent=i;
node[temp1.rchild].parent=i;
break;
}
}
}//End While!
}
void make_table()
{
//Tao Bang ma:
for(i=0;i<2*n-2;i++) j="0;j
if(a[j].alph==node[i].alph)
{
root=i;
while(root!=2*n-2)
{
if(node[root].isleft==1)
strcat(a[j].code,left);
else
strcat(a[j].code,right);
root=node[root].parent;
}
strrev(a[j].code);
break;
}
}
//In bang ma:
line++;
gotoxy(2,line);
cputs("Encode Table:");
for(i=0;i
{
line++;
gotoxy(2,line);
cprintf("%c %s\n",a[i].alph,a[i].code);
}
return;
}
void quit()
{
for(i=0;i
{
a[i].alph=-1;
a[i].freq=NULL;
a[i].code[0]=NULL;
}
line++;
gotoxy(2,23);
cputs("Press anykey to return!....");
getch();
clrscr();
line=1;
return;
}
#include
#include
#include
#define MAXBITS 32
#define MAXNODES 512
#define MAXSYMBS 256
#define MAXNAME 32
typedef struct {
char alph;
int freq;
char code[MAXBITS];
}hlist;
typedef struct{
char alph;
int lchild,rchild,parent;
int freq;
int isleft;
}hnode;
void general(void);
void make_table(void);
void quit();
hnode node[256],temp1;
hlist a[256],temp;
char left[2]="0",right[2]="1";
int t1,t2;
int root;
int i,j,k,n,f,line=1,len;
char s[256],s1[80];
char ch,filein[MAXNAME],fileout[MAXNAME],filekey[MAXNAME];
FILE *fin,*fout,*fkey;
FILE *ff;
//Giai ma file:
de_file()
{
clrscr();
//Doc file chua thong tin ma hoa
line++;
gotoxy(2,line);
cputs("Enter a filename for decoding:");
gets(filein);
line++;
gotoxy(2,line);
cputs("Enter the name of keyfile:");
gets(filekey);
line++;
gotoxy(2,line);
cputs("Name of decoded file:");
gets(fileout);
fkey=fopen(filekey,"rt");
if(ferror(fkey)!=0)
{
gotoxy(2,22);
cputs("Error!.....");
quit();
return;
}
fscanf(fkey,"%d\n",&n);
for(i=0;i
{
temp=a[j];
a[j]=a[i];
a[i]=temp;
}
for(i=0;i
{
node[j]=node[j-1];
if((node[j-1].lchild)!=-1)
{
node[node[j-1].lchild].parent=j;
node[node[j-1].rchild].parent=j;
}
}
node[i]=temp1;
node[temp1.lchild].parent=i;
node[temp1.rchild].parent=i;
break;
}
}
}//End While!
}
void make_table()
{
//Tao Bang ma:
for(i=0;i<2*n-2;i++) j="0;j
if(a[j].alph==node[i].alph)
{
root=i;
while(root!=2*n-2)
{
if(node[root].isleft==1)
strcat(a[j].code,left);
else
strcat(a[j].code,right);
root=node[root].parent;
}
strrev(a[j].code);
break;
}
}
//In bang ma:
line++;
gotoxy(2,line);
cputs("Encode Table:");
for(i=0;i
{
line++;
gotoxy(2,line);
cprintf("%c %s\n",a[i].alph,a[i].code);
}
return;
}
void quit()
{
for(i=0;i
{
a[i].alph=-1;
a[i].freq=NULL;
a[i].code[0]=NULL;
}
line++;
gotoxy(2,23);
cputs("Press anykey to return!....");
getch();
clrscr();
line=1;
return;
}
Đăng ký:
Bài đăng (Atom)