数据结构课程设计--哈夫曼编码(5)

2019-01-12 10:40

#define N 100

void insertstr(char str[]) //输入字符串 {

printf(\请输入一个字符串:\\n\ scanf(\}

int countstr(char str[],CNode *CharNode) 保存在CNode中 {

int i,j,a=0;

for(i=0;i

CharNode[i].flag=-1; CharNode[i].num=0; CharNode[i].c='|';

}

for(i=0;str[i]!='\\0';i++) { for(j=0;j

}

else

if(CharNode[j].flag==-1)

第15页

共21页

//记录字符出现次数,并

}

}

{

}

a++;

CharNode[j].c=str[i]; CharNode[j].num++; CharNode[j].flag=0; break;

return a; }

void dispCNode(CNode *CharNode,int n) { int i;

printf(\输入的字符极其出现次数如下 :\\n\ for(i=0;i

void CreateHT(HTNode ht[],int n) //构造哈弗曼树 {

int i,j,k,lnode,rnode;

double min1,min2; //分别存放lnode和rnode的两个结点位置

第16页 共21页

if(CharNode[i].flag!=-1) { }

printf(\printf(\

for(i=0;i<2*n-1;i++) //所有结点的相关域置-1

ht[i].parent=ht[i].lchild=ht[i].rchild=-1;

for(i=n;i<2*n-1;i++) { min1=min2=32767; lnode=rnode=-1; for(k=0;k<=i-1;k++) if(ht[k].parent==-1) { if(ht[k].weight

}

else if(ht[k].weight

}

ht[i].weight=ht[lnode].weight+ht[rnode].weight;

ht[i].lchild=lnode; ht[i].rchild=rnode; 结点 ht[lnode].parent=i; ht[rnode].parent=i;

} }

第17页 共21页

//ht[i]作为双亲

void CreateHCode(HTNode ht[],HCode hcd[],int n) //求哈弗曼编码 { int i,f,c; HCode hc; for(i=0;i

f=ht[i].parent; while(f!=-1) { if(ht[f].lchild==c)

hc.cd[hc.start--]='0';

else

hc.cd[hc.start--]='1';

c=f;

f=ht[f].parent;

} hc.start++; hcd[i]=hc;

} }

int DispHCode(HTNode ht[],HCode hcd[],int n) { int i,k; int j; int MAX=0;

printf(\输出哈弗曼编码:\\n\ for(i=0;i

第18页 共21页

//输出哈弗曼编码

{ }

return MAX; }

void insertstr1(char str1[]) //输入哈弗曼编码 { int i;

for(i=0;i

str1[i]='\\0';

//初始化str1[]

j=0;

printf(\for(k=hcd[i].start;k<=n;k++) { }

printf(\

printf(\j++; if(j>=MAX)

MAX=j;

printf(\请输入一串需要译码的哈弗曼编码:\\n\ scanf(\}

int strcompare(HCode hcd[],char temp[],int a,int n) //字符串比较函数 {

int i,j=hcd[a].start; char str[30]=\ for(i=0;j<=n;i++,j++) {

第19页 共21页


数据结构课程设计--哈夫曼编码(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:二语文下册第五单元讲评课

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: